155GIT1 / 1. cvičení: Porovnání verzí
mBez shrnutí editace |
mBez shrnutí editace |
||
Řádek 9: | Řádek 9: | ||
* nápověda, help, doc | * nápověda, help, doc | ||
** http://www.gnu.org/software/octave/doc/interpreter/ | ** '''Matlab:''' | ||
*** on-line dokumentace: https://www.mathworks.com/help/matlab/ | |||
*** on-line seznam funkcí: https://www.mathworks.com/help/matlab/referencelist.html?type=function&s_tid=CRUX_topnav | |||
** '''Octave:''' http://www.gnu.org/software/octave/doc/interpreter/ | |||
* skalární hodnoty | * skalární hodnoty | ||
* proměnné, pole, matice (dvourozměrné) | * proměnné, pole, matice (dvourozměrné) |
Verze z 10. 2. 2022, 01:01
První seznámení s Matlabem a GNU Octave - proměnné, vektory, matice, indexování, základní matematické operace, skripty
Náplň
- ukázka Matlabu a GNU Octave, viz nástroje
- nápověda, help, doc
- Matlab:
- on-line dokumentace: https://www.mathworks.com/help/matlab/
- on-line seznam funkcí: https://www.mathworks.com/help/matlab/referencelist.html?type=function&s_tid=CRUX_topnav
- Octave: http://www.gnu.org/software/octave/doc/interpreter/
- Matlab:
- 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
- indexování matic
- operátor dvojtečka, submatice
- maticové operace
- speciální matice •
ones()
,zeros()
,eye()
,rand()
- 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 - změna vektoru řádkový vs. sloupcový
a*a % chybné rozměry pro násobení vektorů
a*a' % skalární součin vektoru se sebou samým = součet čtverců všech prvků vektoru
a'*a % pozor, takto je výsledkem matice !!!
Matice
(musí být obdélníková)
A = [1 2 3; 3 2 1;-1 -2 -3]
B = [1 2 3; 4 5; 6] % chybné zadání - nejsou definovány všechny prvky matice
(indexování)
A(1, 2)
A(4)
(násobení, transponovaná matice) • Wikipedia
B = 2 * A % skalárem se násobí všechny prvky matice
A*B % násobení dvou čtvercových matic
B' % transpozice
A*B' % násobení dvou jiných čtvercových matic - operátor transpozice má vyšší prioritu než jiné operátory, transpozice se vykoná jako první
(náhodné hodnoty)
C = rand(3, 4)
(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
m = 0
n = 10
krok = 0.5
m:krok:n
(submatice)
M = [ 2 3 4 5; 6 8 9 1; 3 4 6 7; 3 4 7 8 ]
M(2:3,3)
M(1:3,2:3)
M(:,2)
M(end,1:2)
M(:,end)
M(6,5) % nedefinovaný prvek matice
M(6,5) = 10 % matice lze takto rozšířit
Maticové operace
(sčítání)
% skalární hodnota
M + 10
% matice stejného rozměru
f = [2 3; 4 5], g = ones(2) + eye(2)
f + g
M + g % nelze sčítat matice různých rozměrů
(maticové násobení) • Wikipedia
% skalární hodnota
M * 10
% (m, n) x (n, p)
f * g
M * g % nelze - rozměry matic neodpovídají rozměrům maticového násobení
(operace po prvcích)
% násobení prvků se stejnými indexy
f .* g
% další operace po prvcích
f ./ g
f .^ 2
f .^ g
(spojení matic)
% horizontálně
[f, g] % nebo [f g]
% vertikálně
[f; g]
% rozměr se musí shodovat
h = 5 + zeros(3,2)
[f, h] % nelze
[f; h]
(odstranění řádku/sloupce)
% vložení prázdného řádku/sloupce = odstranění řádku/sloupce
M(5,:) = []
M(end,:) = []
M(:, [3, 5]) = []
(matice s komplexními čísly) • Komplexně sdružené číslo
Q = [ 0, 1 + 5i; 10 + 3i, -1 ]
Q'
Q.'