Home > Doc > Manuale Matlab > Operazioni

Manuale Matlab

Operazioni

In MATLAB sono definite le seguenti operazioni aritmetiche:

1) addizione +

2) sottrazione -

3) moltiplicazione *

4) divisione /

5) elevamento a potenza ˆ

Quando l’espressione da valutare è troppo lunga per stare su di un’unica riga di comando,è possibile utilizzare un carattere di continuazione dato da . . . (tre punti). Ad esempio,

>> 1 + 1/4 + ...

1/8 ans = 1.375

E’ possibile verificare che poichè in MATLAB non vi è alcuna distinzione tra variabili intere, reali o complesse, il risultato dell’operazione di elevamento a potenza nel caso di esponenti frazionari può non corrispondere a quello naturalmente atteso. Ad esempio, volendo calcolare la radice cubica di -5, si ottiene:

>> (-9)^(1/5)

ans = 1.2555 + 0.9122i

e non un numero reale. Il problema è dovuto al fatto che MATLAB, lavorando in notazione complessa, calcola come prima radice cubica di -9 una delle due con parte immaginaria non nulla. Anche in MATLAB è possibile alterare le precedenze classiche delle operazioni aritmetiche mediante l’uso opportuno delle parentesi tonde. Ad esempio, se nel caso precedente si fosse scritto ( - 9) 1 /5 si sarebbe ottenuto il valore -l.8000 ossia, giustamente, - 9/5. Per quanto riguarda i vettori, le operazioni elementari si estendono (quando ben definite) in modo del tutto naturale, con l’eccezione delle operazioni di divisione e di elevamento a potenza. Ad esempio,

>> a = [1:4];

>> b = [1:3];

>> c = [3 2 6 -1] ;

>> a+c (somma di vettori riga)

ans =

4 4 9 3

>> a-c (differenza di vettori riga)

ans =

-2 O -3 5

>> a+b

??? Errar using ==> + Matrix dimension must agree.

>>a*c

??? Errar using ==> * Inner matrix dimension must agree.

Le ultime istruzioni ci indicano che, le operazioni fra vettori sono valide solo se le dimensioni sono consistenti. Infatti, dato un vettore riga s di dimensione n (ossia una matrice 1 * n) ed un vettore colonna d di dimensione m, si potrà eseguire il prodotto scalare s*d solo se m=n (ottenendo in tal caso uno scalare).

>> s=[1:4];

>> d=[1;2;3;4];

>> s*d

ans=

30

Quindi d*s fornirà una matrice m*n.

>> s=[1:4];

>> d=[1;2;3;4];

>> M=d*s

M=

1 2 3 4

2 4 6 8

3 6 9 12

4 8 12 16

5 10 15 20

G. Ciaburro

Successivo: Espressioni

Sommario: Index