V názve matice, ktorý môže obsahovať až 31 znakov, sú povolené iba nasledujúce znaky:
Názov nesmie začínať číslicou.
Maticu rozmeru mxn vytvárame pomocou hranatých zátvoriek, v ktorých uvádzame jednotlivé riadky oddelené bodkočiarkou, pričom prvky každého riadku (stĺpce) oddeľujeme medzerou alebo čiarkou (môžme ich použiť aj naraz). V každom riadku musí byť rovnaký počet prvkov (stĺpcov)!
Rôzne spôsoby zadávania matice si ukážeme na príkladoch. Majme maticu
>> A = [1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A = [1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> A = [1,2,3
4,5,6
7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> A = [1 2 3;4,5,6
7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A(1,2) = 0
A =
1 0 3
4 5 6
7 8 9
>> B(1,2) = 3 % B(riadok, stĺpec) = hodnota
B =
0 3
>> B(3,3) = 4
B =
0 3 0
0 0 0
0 0 4
>> B(2,2:3) = [1 2]
B =
0 3 0
0 1 2
0 0 4
Rôzne spôsoby manipulácie matice si opäť ukážeme na príkladoch. Majme maticu
>> B = A(2,2)
B =
5
>> A(1,3)
ans =
3
>> B = A(2,:) % Výraz : znamená všetky stĺpce B = 4 5 6 >> A(:,3) % Výraz : znamená všetky riadky ans = 3 6 9
>> B = A(2:3,1:2) % Výraz n:m znamená B = % n-tý riadok (stĺpec) až m-tý riadok (stĺpec) 4 5 7 8 >> A(1,1:2) ans = 1 2
>> a = [1 2 3 4 5 6 7 8 9 0 1 2 3]
a =
1 2 3 4 5 6 7 8 9 0 1 2 3
>> a(1:end) % Výraz end posledný prvok (index)
ans =
1 2 3 4 5 6 7 8 9 0 1 2 3
>> a(4:end-2)
ans =
4 5 6 7 8 9 0 1
Medzi užitočné funkcie patria tiež tie, ktoré manipulujú s maticami/vektormi. Môžu nám uľahčiť prácu so zadávaním matíc/vektorov.
| Funkcia | Opis |
|---|---|
| diag | vytvorenie a vybratie diagonály matice |
| fliplr | výmena stĺpcov matice zľava-doprava |
| flipud | výmena riadkov matice zhora-nadol |
| rot90 | rotácia matice o 90 stupňov |
| size | rozmery matice |
| tril | vybratie dolnej triangulárnej matice |
| triu | vybratie hornej triangulárnej matice |
| : | index v matici |
Použitie funkcií pre manipuláciu s maticami, ktoré sú uvedené v tabuľke, si opäť ukážeme na príkladoch. Majme maticu a vektor

>> d = diag(A)
d =
1
5
9
>> d = diag(A,-1)
d =
4
8
>> d = diag(A,1)
d =
2
6
>> d = diag(A,2)
d =
3
>> D = diag(b)
D =
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
>> B = fliplr(A)
B =
3 2 1
6 5 4
9 8 7
>> B = flipud(A)
B =
7 8 9
4 5 6
1 2 3
>> size(A)
ans =
3 3
>> [riadky, stlpce] = size(A)
riadky =
3
stlpce =
3
>> B = rot90(A) % Rotácia matice o 90º
B =
3 6 9
2 5 8
1 4 7
>> B = tril(A)
B =
1 0 0
4 5 0
7 8 9
>> B = tril(A,-1)
B =
0 0 0
4 0 0
7 8 0
>> B = triu(A)
B =
1 2 3
0 5 6
0 0 9
>> B = triu(A,1)
B =
0 2 3
0 0 6
0 0 0
Všetky premenné sú v MATLABe chápané ako matice. S tým súvisí aj správanie sa operátorov.
| Názov | Syntax | Opis |
|---|---|---|
| sčítanie | a1+a2 |
|
| odčítanie | a1-a2 | |
| násobenie matíc | a1*a2 |
|
| umocnenie matice | a1^a2 |
|
| delenie matíc | a1/a2 |
|
| delenie matíc zľava | a1\a2 |
|
| transpozícia a konjugovanosť | a1' |
|
>> C = [1 2;7 8];
>> D = [3 -5;-1 4];
>> C+D
ans =
4 -3
6 12
>> 3+D
ans =
6 -2
2 7
>> C-D
ans =
-2 7
8 4
>> D-2
1 -7
-3 2
>> b = [2;6];
>> C*D
ans =
1 3
13 -3
>> C*b % Rozmery: 2x2 x 2x1 » 2x1
ans =
14
62
>> D*2
ans =
6 -10
-2 8
>> A = [1 2;7 8];
>> B = [3 -5;-1 4];
>> x = B/A
x =
-9.8333 1.8333
6.0000 -1.0000
>> x = A\B
x =
-4.3333 8.0000
3.6667 -6.5000
>> C'
ans =
1 7
2 8
C^2
ans =
15 18
63 78
% Rovnaký výsledok dosiahneme aj výrazom
C*C
ans =
15 18
63 78
| Názov | Syntax | Opis |
|---|---|---|
| sčítanie | a1+a2 | |
| odčítanie | a1-a2 | |
| násobenie po prvkoch | a1.*a2 | |
| umocnenie po prvkoch | a1.^a2 | |
| delenie po prvkoch | a1./a2 | |
| delenie po prvkoch zľava | a1.\a2 |
>> C.*D
ans =
3 -10
-7 32
>> C./D
ans =
0.3333 -0.4000
-7.0000 2.0000
>> C.^2
ans =
1 4
49 64
>> C.*C
ans =
1 4
49 64
Sústavu rovníc Ax = b riešime pomocou operátora \ alebo pomocou inverznej matice (funkcie inv). V každom prípade je potreba najskôr overiť rešiteľnosť sústavy, napríklad pomocou výpočtu determinantu (funkcie det):
function x = sustava(A,b) % SUSTAVA - riesenie sustavy linearnych rovnic % A ... matice sustavy % b ... vektor pravych stran % x ... riesenie sustavy if det(A) == 0 error('Sustava nema riesenie!') end x = A\b; % vypocet riesenia alebo x=inv(A)*b;
>> M=[3 2 -1; 1 0 1; 2 1 -1]; % zadanie sustavy v maticovem tvare >> v=[5;4;2]; >> riesenie = sustava(M,v) % spustenie funkcie riesenie = 1.5000 1.5000 2.5000 >> M*riesenie % overenie spravnosti riesenia ans = 5 4 2
% Vytvorenie vektora s prvkami od 0 po 3 delením 0.5
x = [0:0.5:3]
x =
0 0.5 1 1.5 2 2.5 3
% Vytvorenie vektora s prvkami od 10 po 15 delením 1
y = 10:15
y =
10 11 12 13 14 15
Medzi užitočné funkcie patria tiež tie, ktoré vytvárajú matice/vektory. Môžu nám uľahčiť prácu so zadávaním matíc/vektorov. Tieto funkcie majú väčšinou dva vstupné parametre: [matica] = nazov_funkcie(m,n), ale pokiaľ chceme získať štvorcovú maticu (typu mxm), stačí zadať iba jeden vstup. Prehľad týchto funkcií zobrazí príkaz help elmat.
| funkcia | Opis |
|---|---|
| eye | jednotková diagonálna matica |
| zeros | nulová matica |
| ones | matica zložená z jednotiek |
| rand | matica náhodných čísel z intervalu (0,1) |
| randn | matica náhodných čísel |
| linspace | vektor hodnôt s lineárnym delením |
| logspace | vektor hodnôt s logaritmickým delením |
| magic | magická štvorcová matica |
| meshgrid | X a Y súradnice pre 3-D zobrazenie |
>> C = eye(3) % alebo C = eye(3,3)
C =
1 0 0
0 1 0
0 0 1
>> C = zeros(2,3)
C =
0 0 0
0 0 0
>> C = ones(3,2)
C =
1 1
1 1
1 1
>> rand(2,3)
ans =
0.4447 0.7919 0.7382
0.6154 0.9218 0.1763
>> randn(2,3)
ans =
-0.5883 -0.1364 1.0668
2.1832 0.1139 0.0593
>> linspace(1,3) % 100 bodov v intervale <1,3> ans = Columns 1 through 7 1.0000 1.0202 1.0404 1.0606 1.0808 1.1010 1.1212 Columns 8 through 14 1.1414 1.1616 1.1818 1.2020 1.2222 1.2424 1.2626 ... Columns 99 through 100 2.9798 3.0000 >> linspace(1,3,10) % 10 bodov v intervale <1,3> ans = Columns 1 through 7 1.0000 1.2222 1.4444 1.6667 1.8889 2.1111 2.3333 Columns 8 through 10 2.5556 2.7778 3.0000
>> logspace(1,3)
ans =
1.0e+003 *
Columns 1 through 7
0.0100 0.0110 0.0121 0.0133 0.0146 0.0160 0.0176
Columns 8 through 14
0.0193 0.0212 0.0233 0.0256 0.0281 0.0309 0.0339
...
Columns 99 through 100
2.9798 3.0000
>> linspace(1,3,10) % 10 bodov v intervale <1,3>
ans =
1.0e+003 *
Columns 1 through 7
0.0100 0.0167 0.0278 0.0464 0.0774 0.1292 0.2154
Columns 8 through 10
0.3594 0.5995 1.0000
% Magicka matica: sucet kazdeho riadka a stlpca a diagonály je rovnaky >> magic(4) % magic(n) - musi platit n >= 3 ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
>> [X,Y] = meshgrid(-2:.2:2, -2:.2:2);
>> size(X)
ans =
21 21
>> size(Y)
ans =
21 21
>> length(-2:.2:2)
ans =
21
Asys = [zeros(3,1), eye(3); -1,-3,-5,-8]
Asys =
0 1 0 0
0 0 1 0
0 0 0 1
-1 -3 -5 -8