abc Matlab - elektronski priručnik
VII dio Dodaci /APPENDIX/ - 7.1. Programiranje u Matlabu 1
7.1.3. Kontrola toka
7.1.3.4. switch-case konstrukcija
Sintaksa switch-case konstrukcije je
switch izraz (skalar ili string)
case vrijednost1 (izvršava se ako je izraz evaluiran na vrijednost1)
komande
case vrijednost2 (izvršava se ako je izraz evaluiran na vrijednost2)
komande
.
.
.
otherwise
naredbe
end
Switch poredi ulazni izraz sa svakom case vrijednošću. Kada se pronađe slaganje on izvršava pridružene komande.
U sljedećem primjeru slučajni cijeli broj x generisan je iz skupa {1, 2, … , 10}. Ako je x = 1 ili x = 2, tada se poruka Vjerovatnoća = 20% pojavljuje na ekranu. Ako je x = 3 ili 4 ili 5, tada se prikazuje poruka Vjerovatnoća = 30%, inače se generiše poruka Vjerovatnoća = 50%. Skript fajl fswitch koristi switch kao alat za manipulisanje svim pomenutim slučajevima
% Script file fswitch.
x = ceil(10*rand); % Generise slucajni cio broj u {1, 2, ... , 10}
switch x
case {1,2}
disp('Vjerovatnoca = 20%');
case {3,4,5}
disp('Vjerovatnoca = 30%');
otherwise
disp('Vjerovatnoca = 50%');
end
Primijetimo upotrebu vitičastih zagrada nakon riječi case. Ovo kreira tzv. ćelijski niz umjesto jednodimenzionalnog niza, koji zahtijeva upotrebu uglastih zagrada.
Ovdje su nove MATLAB funkcije koje su korištene u fajlu fswitch
rand – uniformno distribuirani slučajni brojevi u intervalu (0, 1)
ceil – zaokružuje prema plus beskonačnosti
disp – prikazuje string/niz na ekranu
Testirajmo ovaj kod deset puta
for k = 1:10
fswitch
end
Vjerovatnoca = 50%
Vjerovatnoca = 30%
Vjerovatnoca = 50%
Vjerovatnoca = 50%
Vjerovatnoca = 50%
Vjerovatnoca = 30%
Vjerovatnoca = 20%
Vjerovatnoca = 50%
Vjerovatnoca = 30%
Vjerovatnoca = 50%
Kontrola toka - if-else-end konstrukcije < Index > Relacioni i logički operatori
|