Z. Rudnicki: MATLAB - KOMPENDIUM
Na przykład:
» 2>3 ans = 0 » 3>2
Tabela 2.2. Operatory logiczne i równoważne im funkcje
Operator |
Funkcja |
Znaczenie |
A&B |
and(A,B) |
A i B |
A I B |
or (A,B) |
A lub B |
-A |
not (A) |
nie A |
Złożone wyrażenia logiczne można tworzyć przy pomocy relacji i operatorów oraz funkcji logicznych. Operatory logiczne Matlaba i odpowiadające im funkcje podaje Tabela 2.2, przy czym A i B reprezentują wyrażenia logiczne.
Wyrażenia logiczne znajdują zastosowanie głównie w instrukcjach warunkowych IF. Przykładem zastosowania instrukcji IF może być zamieszczony poniżej fragment programu rozwiązywania równania kwadratowego:
if b*b-4*a*c <0
'Brak pierwiastków rzeczywistych' else
xl =(-b-sqrt(b*b-4*a*c))/(2*a); x2=(-b+sqrt(b*b-4*a*c))/(2*a) ; xl, x2 end
Inne przykłady podano przy opisywaniu instrukcji IF.
Matlab umożliwia dokonywanie pewnych operacji na tekstach. Jak już wspomniano, stała tekstowa to łańcuch znaków (ang.: string of characters) ujęty w apostrofy np.:
| ' xl=', ' x2=', 'Ala ma kota' |
W rzeczywistości łańcuch znaków jest tablicą znaków (ang.: array of characters) a dokładniej wektorem, którego elementami są znaki drukarskie. W FreeMat typ ten określony jest jako string. Długość tego wektora jest równa liczbie składowych znaków, łącznie ze spacjami.
Do określenia rozmiarów macierzy (lub wektora) służy funkcja size(..). Inne wybrane funkcje do operowania na tekstach pokazuje Tabela 2.3.
Tabela 2.3. Wybrane funkcje do operowania na tekstach
Funkcja |
Działanie |
z=char(n) |
zamienia wartość kodową n na odpowiedni znak z |
n=double('z') |
wyznacza kod znaku z |
deblank(S) |
usuwa spacje i znaki niedrukowane z końca łańcucha S |
eval(S) |
wykonuje polecenie zapisane w łańcuchu S |
ischar(x) |
sprawdza czy x jest tablicą znaków (1 oznacza tak) |
lower(S) |
zamienia w łańcuchu S duże litery na małe |
S=num2str(x,p) |
zamienia wartość wyrażenia x na łańcuch znaków S, opcjonalnie uwzględniając p miejsc dziesiętnych po kropce |
x=str2double(S) |
zamienia łańcuch znaków S reprezentujący liczbę na liczbę typu double |
S=strcat (SI, S2,..) |
skleja łańcuchy SI, S2,... w jeden łańcuch S |
v=strfind(S, SI) |
podaje pozycje w łańcuchu S na jakich znalazł wystąpienia krótszego łańcucha S1 |
strjust(S,j) |
wyrównuje S do: prawej (j=’right’), lewej (j=’left’) lub środka (j=’center’) |
strrep(S,SI,S2) |
w łańcuchu S zastępuje każdy podłańcuch S1 przez podłańcuch S2 |
strtrim(S) |
usuwa początkowe i końcowe spacje z łańcucha S |
S=strvcat(SI, |
tworzy macierz w której łańcuchy S1, S2,.. są wierszami, uzupełniając krótsze |
S2, ..) |
łańcuchy spacjami na końcu do jednakowej długości |
upper(S) |
zamienia w łańcuchu S małe litery na duże |