155GIT1 / 2. cvičení: Porovnání verzí

Z GeoWikiCZ
mBez shrnutí editace
Řádek 8: Řádek 8:
#* vytvořit proměnnou A o rozměrech [3x4] s náhodnými čísly od 0 do 9
#* vytvořit proměnnou A o rozměrech [3x4] s náhodnými čísly od 0 do 9
#* vybrat třetí element z druhého řádku a vynásobit ho dvěma
#* vybrat třetí element z druhého řádku a vynásobit ho dvěma
# operátor dvojtečka
#* submatice
# rozšiřování hranic matice
# speciální matice {{bullet}} <code>ones()</code>, <code>zeros()</code>, <code>eye()</code>
#* magický čtverec {{bullet}} <code>magic()</code>
# operace s maticemi
#* sčítání
#* násobení, dělení
#* transponování s komplexně sdruženými hodnotami, bez komplexně sdružených hodnot
#* spojování
#* odstraňování
# maticové funkce {{bullet}} <code>diag()</code>, <code>det()</code>, <code>inv()</code>, <code>find()</code>
# maticové funkce {{bullet}} <code>diag()</code>, <code>det()</code>, <code>inv()</code>, <code>find()</code>
#* náhodné přirozené číslo {{bullet}} <code>randi()</code>
#* náhodné přirozené číslo {{bullet}} <code>randi()</code>
Řádek 28: Řádek 17:


== Ukázky ==
== Ukázky ==
=== 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>


=== Maticové funkce, relační operátory a matematické funkce ===
=== Maticové funkce, relační operátory a matematické funkce ===

Verze z 26. 2. 2020, 14:02

Maticové a matematické funkce, speciální proměnné, operátory

Náplň cvičení

  1. opakování
    • vytvoření a spuštění skriptů • edit, run
    • vytvořit proměnnou A o rozměrech [3x4] s náhodnými čísly od 0 do 9
    • vybrat třetí element z druhého řádku a vynásobit ho dvěma
  2. maticové funkce • diag(), det(), inv(), find()
    • náhodné přirozené číslo • randi()
  3. relační a logické operátory
  4. základní matematické funkce
    • v matici - prvek po prvku • abs(), sign()exp(), log() • goniometrické • zaokrouhlovací
    • v matici - sloupcové • min(), max()sum(), prod()sort()mean(), median()std(), var()
    • atan2(Y,X)

Ukázky

Maticové funkce, relační operátory a matematické funkce

(ukázky použití maticových funkcí)

 d = rand(1,4)
 D = diag(d)
 E = -2 + 4*rand(4,3)  % náhodné hodnoty v rozsahu od -2 do 2
 e = diag(E)
 e1 = diag(E,1)
 e2 = diag(E,-1)
 F = -1 + 3*rand(4)
 Fi = inv(F)          % pouze pro čtvercovou matici
 F * Fi
 F>=0
 find(F>=0)
 F( find(F>=0) )
 F( find(F>=0) ) = 2

(ukázky použití matematických funkcí)

 abs(E)
 sign(E)

 round(E)
 ceil(E)
 floor(E)
 fix(E)   % celá část čísla

 max(E)
 maxE = max(max(E))

 Erad = sum(E')
 minErad = min(Erad)
 ind = find(Erad == minErad) % index řádku s nejmenším řádkovým součtem
 E(ind,:)                    % řádek s nejmenším řádkovým součtem

 sort(E)
 sort(E,2)
 sort(E,2,'descend')

Úlohy