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

Z GeoWikiCZ
mBez shrnutí editace
Řádek 34: Řádek 34:


<source lang=octave>
<source lang=octave>
%
i = -3
i = -3
j = 3
j = 3
i:j
i:j
 
%
I = 2
I = 2
J = -2
J = -2
I:J
I:J
J:I
J:I
 
%
a = 0
a = 0
b = 10
b = 10
c = 0.5
c = 0.5
a:c:b
a:c:b
</source>
</source>


Řádek 53: Řádek 52:


<source lang=octave>
<source lang=octave>
A = [ 2 3 4 5; 6 8 9 1; 3 4 6 7; 3 4 7 8 ]
A = [ 2 3 4 5; 6 8 9 1; 3 4 6 7; 3 4 7 8 ]
A(2:3,3)
A(2:3,3)
A(1:3,2:3)
A(1:3,2:3)
A(:,2)
A(:,2)
A(end,1:2)
A(end,1:2)
A(:,end)
A(:,end)
%
 
A(6,5)
A(6,5)
A(6,5) = 10 % !!!
A(6,5) = 10   % !!!
</source>
</source>


Řádek 69: Řádek 68:


<source lang=octave>
<source lang=octave>
% skalární hodnota
% skalární hodnota
A + 10
A + 10
% matice stejného rozměru
% matice stejného rozměru
a = [2 3; 4 5], b = ones(2) + eye(2)
a = [2 3; 4 5], b = ones(2) + eye(2)
a + b
a + b
A + b % nelze
A + b % nelze
</source>
</source>


Řádek 80: Řádek 79:


<source lang=octave>
<source lang=octave>
% skalární hodnota
% skalární hodnota
A * 10
A * 10
% (m, n) x (n, p)
% (m, n) x (n, p)
a * b
a * b
A * b % nelze
A * b % nelze
</source>
</source>


Řádek 90: Řádek 89:


<source lang=octave>
<source lang=octave>
% násobení prvků se stejnými indexy
% násobení prvků se stejnými indexy
a .* b
a .* b
% další operace
% další operace
a ./ b
a ./ b
a .^ 2
a .^ 2
a .^ b
a .^ b
</source>
</source>


Řádek 101: Řádek 100:


<source lang=octave>
<source lang=octave>
B = [ 0, 1 + 5i; 10 + 3i, -1 ]
B = [ 0, 1 + 5i; 10 + 3i, -1 ]
B'
B'
B.'
B.'
</source>
</source>


Řádek 109: Řádek 108:


<source lang=octave>
<source lang=octave>
% horizontálně
% horizontálně
[a, b] % nebo [a b]
[a, b] % nebo [a b]
% vertikálně
% vertikálně
[a; b]
[a; b]
% rozměr se musí shodovat
% rozměr se musí shodovat
c = 5 + zeros(3,2)
c = 5 + zeros(3,2)
[a, c] % nelze
[a, c] % nelze
[a; c]
[a; c]
</source>
</source>


Řádek 122: Řádek 121:


<source lang=octave>
<source lang=octave>
A(5,:) = []
A(5,:) = []
A(end,:) = []
A(end,:) = []
A(:, [3, 5]) = []
A(:, [3, 5]) = []
</source>
</source>


Řádek 136: Řádek 135:


<source lang=octave>
<source lang=octave>
d = rand(1,4)
d = rand(1,4)
D = diag(d)
D = diag(d)
</source>
</source>


<source lang=octave>
<source lang=octave>
E = -2 + 4*rand(4,3)  % náhodné hodnoty v rozsahu od -2 do 2
E = -2 + 4*rand(4,3)  % náhodné hodnoty v rozsahu od -2 do 2
e = diag(E)
e = diag(E)
e1 = diag(E,1)
e1 = diag(E,1)
e2 = diag(E,-1)
e2 = diag(E,-1)


sign(E)
sign(E)
abs(E)
abs(E)


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


find(E>=0)
find(E>=0)
E( find(E>=0) ) = 2
E( find(E>=0) ) = 2


sEr = sum(E')
sEr = sum(E')
minsEr = min(sEr)
minsEr = min(sEr)
indEr = find(sEr == minsEr)  % index řádku s nejmenším řádkovým součtem
indEr = find(sEr == minsEr)  % index řádku s nejmenším řádkovým součtem
</source>
</source>


<source lang=octave>
<source lang=octave>
F = -1 + 3*rand(4)
F = -1 + 3*rand(4)
Fi = inv(F)
Fi = inv(F)
F * Fi
F * Fi


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


sort(F)
sort(F)
sort(F,2)
sort(F,2)
sort(F,2,'descend')
sort(F,2,'descend')
</source>
</source>



Verze z 1. 3. 2017, 19:00

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 a matematický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)

 sign(E)
 abs(E)

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

 find(E>=0)
 E( find(E>=0) ) = 2

 sEr = sum(E')
 minsEr = min(sEr)
 indEr = find(sEr == minsEr)  % index řádku s nejmenším řádkovým součtem
 F = -1 + 3*rand(4)
 Fi = inv(F)
 F * Fi

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

 sort(F)
 sort(F,2)
 sort(F,2,'descend')

Úlohy