S tím, že v MATLABu je všechno chápáno jako matice, souvisí chování operátorů. Připravme si proměnné, na kterých budeme zkoumat chování operátorů:
>> A = [1 2; 3 0; 4 -1]
>> B = [0 1 1 1; 1 0 -1 2; 0 0 1 5]
>> C = [1 2 5 0; 1 1 0 3]
>> u = [0 3 -2]
>> D = [1 0; 2 0; 3 1]
>> E = [1 0 0; 0 2 0; 0 0 3]
>> F = [1 1 1; 2 2 2; 1 2 3]
>> G = [3+i -2+i; 1.5+i -3.1-i]
V části "vyzkoušejte" jsou uvedeny ukázky, přičemž chybné výrazy jsou označené >>.
| název | syntaxe | popis | vyzkoušejte |
| unární plus | +a1 | - výsledek je shodný s a1 | >> +u |
| unární minus | -a1 | - výsledek je téhož rozměru jako a1 a obsahuje opačná čísla | >> -u |
| transpozice a konjugovanost | a1' | - výsledkem je transponovaná matice, přičemž všechna komplexní čísla změní znaménko imaginární části (na opačné) - u reálných matic funguje stejně jako .' | >> G' |
| transpozice | a1.' | - výsledkem je transponovaná matice (oproti ' nemění komplexní prvky znaménko imaginární části) | >> G.' |
!!! POZOR u čtvercových matic !!!
Pro čtvercové matice většina operátorů funguje, aniž by MATLAB hlásil chybné rozměry matic. Proto je potřeba dávat si u těchto matic velký pozor na to, zda chceme provést operaci maticovou, anebo po prvcích. Výsledky jsou obecně odlišné!
Porovnejte např. výsledky následujících výrazů:
>> E*F
>> E.*F
>> F^3
>> F.^3
| název | syntaxe | popis | vyzkoušejte |
| vytváření aritmetických posloupností | i:k:j | - všechny argumenty musí být SKALÁRY - vytvoří aritmetickou posloupnost od i do j s krokem k, tj. [i i+k i+2k ... j] (v případě, že (j-i)/k není celé číslo, tak poslední člen není j, ale číslo menší (maximálně o k-1))- není-li k použito, je krok automaticky volen jako jedna, tedy i:j generuje posloupnost [i i+1 i+2 ... j]- je-li krok zvolen chybně (nelze se od i dostat k j), pak je výsledkem prázdná matice | >> 1:3:10 |
| název | syntaxe | popis | vyzkoušejte |
| menší | a1<a2 | - provádějí se po prvcích - argumenty musí mít STEJNÉ rozměry nebo alespoň jeden z nich je skalár - výsledek má rozměr jako neskalární argument (nebo je to skalár) - výsledek obsahuje pouze nuly (nepravda, false) a jedničky (pravda, true) podle toho, zda je příslušná relace mezi argumenty pravdivá - pokud je jeden z argumentů skalár, porovnává se s ním každý prvek druhého argumentu | >> A<3 |
| menší nebo rovno | a1<=a2 | ||
| větší | a1>a2 | ||
| větší nebo rovno | a1>=a2 | ||
| rovnost (je rovno?) | a1==a2 | ||
| nerovnost (je různé?) | a1~=a2 |
!!! POZOR: je velký rozdíl mezi == a = !!!
x==5 jde o výraz, jehož hodnotou je 0 nebo 1 (porovnání x s číslem 5) a x se nemění, zatímcox=5 jde o přiřazení (příkaz), které nevrací hodnotu, nýbrž změní obsah proměnné x!!!
| název | syntaxe | popis | vyzkoušejte |
| negace | ~a1 | - aplikuje se na každý prvek a1- výsledek má rozměr jako a1- výsledek obsahuje pouze nuly a jedničky (viz tabulka negace) | >> ~3.125 |
| negace | |
|---|---|
a1 | ~a1 |
| nenulové | 0 |
0 | 1 |
| název | syntaxe | popis | vyzkoušejte |
| logický součin, AND | a1&a2 | - provádějí se po prvcích - argumenty musí mít STEJNÉ rozměry nebo alespoň jeden z nich je skalár - výsledek má rozměr jako neskalární argument (nebo je to skalár) - výsledek obsahuje pouze nuly a jedničky (viz tabulka logického součinu a součtu) |
>> A&D |
| logický součet, OR | a1|a2 |
>> A|D |
| logický součin a součet | |||
|---|---|---|---|
a1 | a2 | a1&a2 | a1|a2 |
| nenulové | nenulové | 1 | 1 |
| nenulové | 0 | 0 | 1 |
| 0 | nenulové | 0 | 1 |
| 0 | 0 | 0 | 0 |
Pořadí, v jakém se budou jednotlivé části výrazu vyhodnocovat, můžeme podle potřeby zadat tím, že použijeme kulaté závorky pro ohraničení všech potřebných částí výrazu. Protože každý z výše uvedených operátorů má pevně dané pořadí vyhodnocování, není někdy závorek potřeba. Proto si nyní uvedeme pořadí vyhodnocování (prioritu) operátorů. Operátory v tabulce jsou seřazeny shora dolů podle klesající priority (tj. ty nejnižší se vyhodnocují nejpozději).
| symbol | poznámka | |
| 1. | () | závorky |
| 2. | .' .^ ' ^ | transpozice, umocnění, transpozice+konjugovanost, maticové umocnění |
| 3. | + - ~ | unární plus, unární minus, negace |
| 4. | .* ./ .\ * / \ | násobení po prvcích, dělení po prvcích, dělení po prvcích zleva, násobení matic, dělení matic, dělení matic zleva |
| 5. | + - | sčítání, odčítání |
| 6. | : | dvojtečka |
| 7. | < <= > >= == ~= | relační operátory |
| 8. | & | logický součin, AND |
| 9. | | | logický součet, OR |
Příklad:
výsledky jsou uvedeny pro a=-2; b=2; c=1.5 (protože se jedná o skaláry, tak není nutné používat operátory s tečkou):
| výraz | zápis v MATLABu | výsledek (zaokr. na 4 des. místa) |
|---|---|---|
|
>> a+3*b^2/-a^3+2*c-1 | 1.5 |
>> (a+3*b^2)/(-a^3+2*c)-1 | -0.0909 | |
>> (a+3)*b^2/(-a^3+2*c)-1 | -0.6364 | |
>> (a+3*b)^2/((-a^3+2)*c)-1 | 0.0667 |