155GIT1 / 2. cvičení

Z GeoWikiCZ

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. operátor dvojtečka
    • submatice
  3. rozšiřování hranic matice
  4. speciální matice • ones(), zeros(), eye()
    • magický čtverec • magic()
  5. 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í
  6. maticové funkce • diag(), det(), inv(), find()
    • náhodné přirozené číslo • randi()
  7. relační a logické operátory
  8. 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

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)WikipediaKomplexně 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]) = []

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