Come altri linguaggi di programmazione, MATLAB prevede espressioni matematiche, ma queste espressioni coinvolgono matrici intere.
Il blocco di espressioni è:
Variabili
Numeri
Operatori
Funzioni
Variabili
MATLAB non richiede alcuna dichiarazione del tipo della dimensione. Quando MATLAB incontra un nome variabile nuovo, crea automaticamente la variabile e stanzia l’ammontare adatto in deposito. Se la variabile già esiste, MATLAB cambia i suoi contenuti e, se necessario, effettua un nuovo deposito. Per esempio
elenco = 30
crea una 1-by-1 matrice di nome elenco e immagazzina il valore 30 come suo singolo elemento. I nomi delle variabili consistono di una lettera, seguita da qualsiasi numero di lettere, cifre o sottolinea. MATLAB usa solamente i primi 31 caratteri di un nome di una variabile. MATLAB è case sensitive; distingue tra uppercase e lowercase . A ed a non sono la stessa variabile. Per vedere la matrice assegnata a ciascuna variabile, semplicemente digitare il nome della variabile.
Numeri
MATLAB usa notazione decimale e convenzionale, con un punto decimale e opzionale ed indicando quantità positive o il segno meno, per numeri negativi. La notazione scientifica usa la lettera e per specificare la potenza decimale.I numeri immaginari usano i o j, come un suffisso. Degli esempi di numeri legali sono:
3 -99 0.0001
9.6397238 1.60210e-20 6.02252e23
1i -3.14159j 3e5i
Tutti i numeri che usano il format long specificato dall’IEEE sono immagazzinati internamente con lo standard floating-point. I numeri floating-point hanno una precisione limitata di 16 cifre decimali significative e una serie limitata da 10^-308 a 10^308+. (Il computer di VAX usa una configurazione diversa, ma la sua precisione e serie sono quasi le stesse.)
Operatori.
Le espressioni usano operatori di aritmetica familiari e le regole della precedenza.
+ Addizione
- Sottrazione
* Moltiplicazione
/ Divisione
\ Left division
(sono descritte nella sezione su matrici e Algebra Lineare in MATLAB)
^ potenza
' Asse coniugato complesso trasposto
() Valutazione specifiche di ordine.
Funzioni
MATLAB prevede un gran numero di funzioni matematiche standard,incluso abs, sqrt, exp, e sin. La radice quadrata o il logaritmo di un numero negativo non è un errore; il risultato complesso è prodotto automaticamente. MATLAB prevede anche funzioni matematiche molto più avanzate, incluso Bessel e gamma function. La maggior parte di queste funzioni accettano argomenti complessi. Per un elenco delle funzioni matematiche elementari, digitare:
help elfun
Per un elenco più avanzato delle funzioni matematiche e delle matrici digitare:
help specfun
help elmat
Alcune delle funzioni, come sqrt e sin, sono calcolate al momento. Loro sono parte del cuore di MATLAB quindi sono molto efficienti, ma i dettagli della computazione non sono prontamente accessibili. Le altre funzioni, come gamma e sinh sono perfezionate in M-files. Si può vedere il codice originario che le valuta ed eventualmente anche cambiarlo .
Molte funzioni speciali prevedono valori di costanti utili.Infinito è generato dividendo un valore diverso da zero per zero, o valutando bene espressioni matematiche e definite che tendono all’infinito. Not-a-number è generato tentando di valutare espressioni tipo 0/0 o Inf-Inf che non hanno valori matematici ben definiti. I nomi delle funzione non sono riservati. `E possibile utilizzare alcuni di tali nomi con una nuova variabile, come:
eps = 1.e-6
e poi usare quel valore in calcoli susseguenti. La funzione originale può essere ripristinata con :
clear eps
Alcuni nomi sono associati a precisi valori, come ad esempio:
pi : 3.14159265...
i : unità Immaginaria,
j : come i
eps : Floating-point con precisione, 2 -52
realmin : il più piccolo floating-point, 2 -1022
realmax : il più grande floating-point,(2-e)2 1023
Inf : Infinito
NaN : Not-a-number.
Abbiamo già ha visto molti esempi di espressioni di MATLAB. Qui ci sono altri esempi, ed i valori che ne risultano.
rho = (1+sqrt(5)) /2 rho = 1.6180
a = abs(3+4i) a = 5
z = sqrt(besselk(4/3,rho-i)) z = 0.3730+ 0.3214i
huge= l'exp(log(realmax)) huge = 1.7977e+308