42 4 ELEMENTY JĘZYKA MATLAB
Tab. 4.1 Słowa kluczowe w MATLAB-ie
nazwa |
opis słów kluczowych |
break |
wyjście z pętli iteracyjnej |
else |
używane łącznie z if |
elseif |
używane łącznie z if |
end |
kończy sekwencję poleceń w instrukcjach |
error |
podaje komunikaty własnej diagnostyki błędów |
for |
powtarzanie sekwencji poleceń, określoną ilość razy |
if |
warunkowe wykonanie sekwencji poleceń |
return |
powrót do wywołanej funkcji lub klawiatury |
while |
powtarzanie sekwencji poleceń, nieokreśloną ilość razy |
Zwraca się uwagę, żc wynik wyrażeń używanych w instrukcji warunkowej, tj. pisanych po if oraz elseif, musi być liczbą (=0 lub ^ 0). Wyrażenia te są zazwyczaj relacją lub wyrażeniem logicznym. W MATLAB-ie wynikiem relacji bądź wyrażenia logicznego może być wektor lub macierz (patrz rozdział 3.6.1). Dla zredukowania takiego wyniku do wartości skalarnej (tj. jednej liczby zero lub ^ 0) stosuje się funkcje logiczne z tabeli 3.8.
Sposób działania instrukcji warunkowej pokazano poniżej na przykładzie realizacji algorytmu rozpoznawania małych liter. Realizuje się go poprzez sprawdzenie czy dany znak, przypisany zmiennej zn, reprezentuje małą literę, która dodatkowo jest:
• samogłoską; wynik funkcji any(zn == sam) tj. porównanie zmiennej zn z wektorem sam,
• spółgłoską; wynik wyrażenia logicznego (’a’<=zn) & (zn <=’z’),
Wyniki niektórych relacji np. (zn == sam) są wektorami. Funkcja any powoduje zredukowanie wyniku w postaci wektora do wartości skalarnej. Opisany powyżej algorytm zrealizowano dla zn = 'u', następującą sekwencją poleceń:
zn = 'u’; disp([’ zn = ’ zn]) sam = [ ’ a ’ ’e’ ’ i ’ ’ o ’ 'u* 'y’]; if any(zn == sam)
wyn =[' ’ zn * jest samogłoska’]; disp(wyn)
elseif (’a’<=zn) & (zn <=’z’)
wyn = [’ ’ zn ’ jest spółgłoska’]; disp(wyn)
©lse
wyn =[’ ’ zn ’ nie jest mała litera’]; disp(wyn)
•nd
1.1.2 Instrukcje iteracyjne
U MATLAB-ie istnieją instrukcje iteracyjne, które wykonują:
♦ nieokreśloną ilość obiegu pętli. Można to zapisać w postaci ogólnej:
while wyrażenie polecenia
end
• ściśle określoną ilość obiegu pętli. Ogólną postać takiej instrukcji przed stawia zapis:
for zmienna = wyrażenie polecenia
end
Wyrażenie zastosowane po słowie while musi być liczbą (=0 lub ^ 0). Wcześniejsze wyjście z pętli umożliwia polecenie break.
Działanie instrukcji iteracyjnej while ilustruje algorytm, który wypisuje w odwrotnej kolejności cyfry liczby dodatniej i całkowitej. Algorytm len zrealizowano stosując funkcje elementarne (rem, fix) z tabeli 2.3 i zapisano następującym zestawem poleceń:
11= 27859; x=ll; i=0; while x>0, i=i+l; y(i) = rem(x,10); x = fix(x/10);
end
disp( ['Cyfry liczby ’,int2str(11), ’ - wypisano’]) disp([’w odwrotnej kolejności ’,int2str(y)])
Do wyprowadzenia wyniku liczbowego na ekran użyto funkcję int2str (tabela 3.5), która przekształca liczbę całkowita w łańcuch.