155GIT1 / 1. cvičení: Porovnání verzí
mBez shrnutí editace |
mBez shrnutí editace |
||
Řádek 114: | Řádek 114: | ||
size(C,1) | size(C,1) | ||
size(C,2) | size(C,2) | ||
</source> | |||
=== Operátor dvojtečka === | |||
''(výčet, rozsah)'' | |||
<source lang=octave> | |||
i = -3 | |||
j = 3 | |||
i:j | |||
I = 2 | |||
J = -2 | |||
I:J | |||
J:I | |||
a = 0 | |||
b = 10 | |||
c = 0.5 | |||
a:c:b | |||
</source> | |||
''(submatice)'' | |||
<source lang=octave> | |||
A = [ 2 3 4 5; 6 8 9 1; 3 4 6 7; 3 4 7 8 ] | |||
A(2:3,3) | |||
A(1:3,2:3) | |||
A(:,2) | |||
A(end,1:2) | |||
A(:,end) | |||
A(6,5) | |||
A(6,5) = 10 % !!! | |||
</source> | |||
=== Maticové operace === | |||
''(sčítání)'' | |||
<source lang=octave> | |||
% skalární hodnota | |||
A + 10 | |||
% matice stejného rozměru | |||
a = [2 3; 4 5], b = ones(2) + eye(2) | |||
a + b | |||
A + b % nelze | |||
</source> | |||
''(násobení)'' {{bullet}} {{wikipedia|Násobení matic|Wikipedia}} | |||
<source lang=octave> | |||
% skalární hodnota | |||
A * 10 | |||
% (m, n) x (n, p) | |||
a * b | |||
A * b % nelze | |||
</source> | |||
''(operace po prvcích)'' | |||
<source lang=octave> | |||
% násobení prvků se stejnými indexy | |||
a .* b | |||
% další operace | |||
a ./ b | |||
a .^ 2 | |||
a .^ b | |||
</source> | |||
''(transponovaná matice)'' {{bullet}} {{wikipedia|Transpozice matice|Wikipedia}} {{bullet}} {{wikipedia|Komplexně sdružené číslo}} | |||
<source lang=octave> | |||
B = [ 0, 1 + 5i; 10 + 3i, -1 ] | |||
B' | |||
B.' | |||
</source> | |||
''(spojení matic)'' | |||
<source lang=octave> | |||
% horizontálně | |||
[a, b] % nebo [a b] | |||
% vertikálně | |||
[a; b] | |||
% rozměr se musí shodovat | |||
c = 5 + zeros(3,2) | |||
[a, c] % nelze | |||
[a; c] | |||
</source> | |||
''(odstranění řádku/sloupce)'' | |||
<source lang=octave> | |||
A(5,:) = [] | |||
A(end,:) = [] | |||
A(:, [3, 5]) = [] | |||
</source> | </source> | ||
Verze z 20. 2. 2020, 05:07
První seznámení s Matlabem a GNU Octave - proměnné, matice, vektory, indexování, skripty
Náplň cvičení
- ukázka Matlabu a GNU Octave, viz nástroje

- nápověda, help, doc
- skalární hodnoty
- proměnné, pole, matice (dvourozměrné)
- základní operace s proměnnými, inkrementace
- vektor, sloupcový, řádkový
- matice, dimenze, ukázka konzistence
- vytváření skriptů
- File -> New -> Script
- spuštění: F5
- výstup se vypisuje do Command Window
- skripty z příkazové řádky •
edit
,run
Ukázky
- Tipy
- Pokud je příkaz ukončen středníkem, tak hodnoty nevypisuje
- Více příkazů lze v jedné řádce oddělit čárkou anebo středníkem
- Dlouhý příkaz lze rozdělit na více řádků pomocí
...
- Pohyb v historii příkazů (klávesové šipky nahoru a dolu)
- Doplňování příkazů pomocí klávesy TAB (dvojstisk)
- Komentáře začínají znakem
%
(v Octave i znakem#
) a jsou ukončeny koncem řádky - Rozsah numerických datových typů
realmin
,realmax
- Textové řetězce jsou ohraničeny jednoduchými uvozovkami (v Octave i dvojitými uvozovkami)
- Nastavení formátu výpisu numerických hodnot:
format long
- výpis na plný počet desetinných místformat short
- výpis na omezený počet desetinných míst (defaultní)
Skalární hodnoty
(matice o dimenzi 1x1)
s = 1
c = 2.3 % pozor, nutno používat desetinnou tečku!
a = 3,9 % čárka odděluje příkazy
Základní matematické operace
(+, -, *, /, závorky, mocnina, odmocnina)
s = 1
t1 = s + 4 * 2 % násobení, dělení má prioritu před sčítáním, odčítáním (t1 = 9)
t2 = (s + 4) * 2 % operátor závorka má vždy nejvyšší prioritu (t2 = 10)
u = t1 / t2 ^ 2 % mocnina má prioritu před +, -, *, / (u = 0.09)
v1 = t1^(1/2) % zápis druhé odmocniny
v2 = sqrt(t1) % druhá odmocnina pomocí interní matematické funkce Matlabu/Octave
Vektory
(řádkový vs. sloupcový)
a = [3 2 5] % taktéž a = [3,2,5]
b = [2;4;6]
c = a*b
a' % transpozice
a*a
a*a'
Matice
(musí být obdélníková)
A = [1 2 3; 3 2 1;-1 -2 -3]
B = [1 2 3; 4 5; 6]
(náhodné hodnoty)
C = rand(3, 4)
(indexování)
A(1, 2)
A(4)
(násobení)
B = 2 * A
A*B
B' % transpozice
A*B'
(dimenze)
rows(C) % pouze v Octave
columns(C) % pouze v Octave
length(C)
size(C)
[r, c] = size(C)
size(C,1)
size(C,2)
Operátor dvojtečka
(výčet, rozsah)
i = -3
j = 3
i:j
I = 2
J = -2
I:J
J:I
a = 0
b = 10
c = 0.5
a:c:b
(submatice)
A = [ 2 3 4 5; 6 8 9 1; 3 4 6 7; 3 4 7 8 ]
A(2:3,3)
A(1:3,2:3)
A(:,2)
A(end,1:2)
A(:,end)
A(6,5)
A(6,5) = 10 % !!!
Maticové operace
(sčítání)
% skalární hodnota
A + 10
% matice stejného rozměru
a = [2 3; 4 5], b = ones(2) + eye(2)
a + b
A + b % nelze
(násobení) • Wikipedia
% skalární hodnota
A * 10
% (m, n) x (n, p)
a * b
A * b % nelze
(operace po prvcích)
% násobení prvků se stejnými indexy
a .* b
% další operace
a ./ b
a .^ 2
a .^ b
(transponovaná matice) • Wikipedia • Komplexně sdružené číslo
B = [ 0, 1 + 5i; 10 + 3i, -1 ]
B'
B.'
(spojení matic)
% horizontálně
[a, b] % nebo [a b]
% vertikálně
[a; b]
% rozměr se musí shodovat
c = 5 + zeros(3,2)
[a, c] % nelze
[a; c]
(odstranění řádku/sloupce)
A(5,:) = []
A(end,:) = []
A(:, [3, 5]) = []