Z. Rudnicki: MATLAB - KOMPENDIUM
Omawianie zaczniemy od najprostszych elementów języka aby stopniowo dojść do objaśnień najważniejszych instrukcji i przykładów programów.
W tej części opracowania w zasadzie nie ma mowy o macierzach i operowaniu na nich. Tematy te jako nieco trudniejsze omówiono w dalszych rozdziałach niniejszego opisu
Wyrażenia - podobnie jak w innych językach - mogą zawierać:
• stałe (liczby)
• zmienne (nazwy zmiennych)
• operatory działań
• nawiasy
• funkcje
Jednak inaczej niż w innych językach - wyrażenia te dotyczą tablic (macierzy), które w szczególności mogą być skalarami (o wartościach będących pojedynczymi liczbami). Poszczególnym składnikom wyrażeń skalarnych poświęcono kolejne podrozdziały. Macierzami zajmiemy się nieco dalej.
2.1.1. Skalarne stałe liczbowe - postacie zapisu liczb
Podobnie jak w większości języków programowania zapis liczb w MATLABie może zawierać:
• początkowy znak plus (na ogół pomijany) lub minus
• kropkę dziesiętną (NIE PRZECINEK!) poprzedzającą część ułamkową np.: -97.6397
• może być stosowana tzw. notacja naukowa w której e oznacza "dziesięć do potęgi..."
np.: -1.60210e-23 oznacza: -1.60210 razy 10 do potęgi -23
• w zapisie liczb urojonych i zespolonych stosuje się symbol jednostki urojonej "i" zawsze
poprzedzony liczbą np.: 1 i; 5.7-3.149j; 2+3e5i
2.1.2. Typy wartości
Matlab nie wymaga deklarowania typów zmiennych przed ich użyciem (co jest konieczne w większości języków programowania np. w Pascafu lub C) ponieważ nadaje zmiennej typ zgodny z wprowadzaną wartością i potrafi zmieniać zarówno typ jak i rozmiary macierzy wstawianych do zmiennych - co jest niemożliwe w wielu innych językach.
Stałe i zmienne liczbowe mają domyślnie typ double a łańcuchy znaków (teksty) typ char. Sprawdzić typ zmiennej można funkcją class(zmienna) a typy wszystkich zdefiniowanych zmiennych - poleceniem whos.
W wyrażeniach logicznych wartość ZEROWA jest równoznaczna z FAŁSZEM a wartości różne od zera traktowane są jako PRAWDA
Możliwe jest dokonywanie różnych konwersji typów m.in.:
> num2str(liczba) - przekształca liczbę na ciąg znaków
> str2num(tekst) - przekształca tekst (ciąg cyfr) na liczbę
> uint8(liczba), uintló(liczba), uint32(liczba) - konwertują do całkowitych bez znaku
> int8(liczba), int 16(liczba), int32(liczba) - konwertują do całkowitych ze znakiem
Typ „double” czyli liczb „rzeczywistych podwójnej precyzji” jest jedynym typem w obrębie którego można wykonywać działania arytmetyczne. Zakres liczb typu double sięga od -realmax do +realmax, gdzie realmax = 1.7977 e+308
Najmniejszy ułamek ma wartość: realmin=2.2251 e-308
Precyzja: Liczby są pamiętane z dokładnością ok. 15-16 cyfr znaczących.
Wartość typu double zajmuje 8 bajtów (64 bity) w pamięci
2.1.3. Formaty wyświetlanych liczb
Postać prezentowania liczb na ekranie można zmieniać przy pomocy dyrektywy: format parametr
gdzie parametr może m.in. być m.in. jednym ze słów:
> short
> short e
> long
8