abc Matlab - elektronski priručnik
V dio Programiranje u Matlabu - 5.1. Kontrola toka programa

5.1.1. Uslovna kontrola – if, else, switch
5.1.1.1. Poređenja nizova u uslovnim naredbama

Važno je razumjeti kako relacioni operatori i if naredbe rade sa matricama. Kada želimo da provjerimo nejednakost između dve varijable, možemo koristiti

if A == B, ...

Ovo je validan Matlab kod, i radi ono što očekujemo kada su A i B skalari. Ali kada su A i B matrice, A == B ne testira da li su one jednake, nego testira gdje su one jednake; rezultat je druga matrica sastavljena od 0 i 1 koja pokazuje jednakost element-po-element. (Zapravo, ako A i B nisu iste veličine, tada je A == B greška.)

A = magic(4);                         B = A;             B(1,1) = 0;

A == B
ans =
         0          1          1          1
         1          1          1          1
         1          1          1          1
         1          1          1          1

Pravi način za provjeru jednakosti između dve varijable je koristiti isequal funkciju:

if isequal(A, B), ...

isequal vraća skalarnu logičku vrijednost 1 (predstavlja true) ili 0 (false), umjesto matrice, kao izraz koji treba procijeniti pomoću if funkcije. Koristeći malopređašnje A i B matrice, dobijamo

isequal(A, B)
ans =
         0

Ovdje je još jedan primjer da ovo naglasimo. Ako su A i B skalari, sljedeći program neće nikad dostići “neočekivanu situaciju”. Ali za većinu parova matrica, uključujući naše magične kvadrate sa zamijenjenim kolonama, nijedan od matričnih uslova A > B, A < B, ili A == B nije istinit za sve elemente i tako se else klauza izvršava:

if A > B
         'greater'
elseif A < B
         'less'
elseif A == B
         'equal'
else
         error('Unexpected situation')
end

Nekoliko funkcija su od pomoći za redukovanje rezultata matričnog poređenja sa skalarnim uslovima za upotrebu sa if, uključujući

isequal
isempty
all
any

Uslovna kontrola – if, else, switch    <    Index    >    Kontrola petlji – for, while, continue, break