_antoniobernardo
Ominide
6 min. di lettura
Vota 4 / 5

Concetti Chiave

  • Gli operatori aritmetici includono addizione, sottrazione, moltiplicazione e divisione, sia a livello di matrice che elemento per elemento.
  • Operatori di comparazione valutano uguaglianza, diversità e relazioni di ordine tra elementi matriciali, restituendo 1 se vero e 0 se falso.
  • Gli operatori booleani vengono utilizzati per le comparazioni logiche, dove 0 è falso e qualsiasi altro valore è vero.
  • Assegnazioni possono memorizzare valori in variabili, supportano la concatenazione di stringhe e possono cancellare elementi di matrici.
  • Gli operatori di incremento e decremento modificano una variabile di 1, lavorando anche su elementi di matrici e vettori.

Operatori aritmetici

X+Y addizione (se x e y sono matrici devono avere lo stesso numero di righe e di colonne)

X.+Y addizione elemento per elemento

X-Y sottrazione (se x e y sono matrici devono averelo stesso numerodirighee di colonne)

X.-Y sottrazione elemento per elemento

X*Y moltiplicazione (se x ey sono matricidevono avere lo stesso numero dirighe e di colonne)

X.*Y moltiplicazione elemento per elemento

X/Y divisione (concettualmente uguale a (inverse(Y')*X'))

X./Y divisione elemento per elemento

XY divisione sinistra (concettualmente uguale a(inverse(X)*Y))

X.Y divisione elemento per elemento

X^Y potenza tra matrici o scalari

X**Y

X.^Y potenza elemento per elemento

X.**Y

-X negazione

X' trasposta

Operatori di comparazione

Gli operatori di comparazione danno come risultato 1 se la comparazione è vera, 0 se è falsa. Per le matrici gli operatori lavorano elemento per elemento.

Per esempio:

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

>> ans 1 0

0 1

X

X

X= = Y vero se x è uguale a y

X>=Y vero se x è maggiore o uguale a y

X>Y vero se x è maggiore di y

X !=Y vero se x è diverso da y

XY vero se x è diverso da y

La funzione isequal (x1, x2, ”¦) dà  vero se tutti x1, x2, ”¦ sono uguali.

Operatori booleani elemento per elemento

Sono espressioni di comparazione che usano gli operatori booleani or, and (&), not(!). Un valore è falso se è 0, vero altrimenti (se è1).

Operatori di assegnazione

Un'assegnazione è un'espressione che memorizza un nuovo valore in una variabile.

Per esempio:

>> z=1

Assegna il valore 1 alla variabile z.

“=”? è chiamato operatore di assegnazione. L'assegnazione può assegnare anche stringhe.

Esempio:

>> thing=”?food”?

>> predicate=”?good”?

>> message=[“this”?,thing,”?is”?,predicate]

Assegna il valore “this food is good”? alla variabile message (qui è illustrate anche la concatenazione di stringhe). La parte sinistra di un'assegnazione non può essere una variabile. Può anche essere un elemento di una matrice o una lista di valori di output. Questi sono tutti chiamati IVALUES e significa che possono apparire sulla parte sinistra dell'operatore di assegnazione. Se viene assegnato uno scalare ad un amatrice indicizzata questo pone tutti gli elementi chiamati dall'indice uguali al valore dello scalare.

Per esempio, se a è una matrice con almeno 2 colonne:

>> a(:,2)=5

Pone tutti gli elementi nella seconda colonna di a uguali a 5. Assegnare una matrice vuota “[ ]”? permette di cancellare righe o colonne della matrice o del vettore.

Per esempio, data una matrice A 4*5, l'assegnazione:

>> A(3,:)=[ ]

Cancella la terza riga di a e l'assegnazione:

>> A(:,1:2:5)=[]

Cancella la prima, terza e quinta colonna.

Un'assegnazione è un'espressione quindi ha un valore. Infatti ponendo

>> z=1

È un'espressione che ha valore 1. Una conseguenza di ciò è che è possibile fare assegnazioni multiple contemporaneamente.

Esempio:

>> x=y=z=0

Assegna il valore 0 in tutte e tre le variabili.

Si può anche assegnare una lista di valori:

>> [a,b,c]=[u,s,v]=svd (a)

Che è equivalente a:

>> [u,s,v]=svd (a)

>> a=u

>> b=s

>> c=v

Il numero di valori sul lato sinistro dell'espressione non può eccedere il numero di valori sul lato destro. Per esempio la seguente espressine produce errore:

>> [a,b,c,d]=[u,s,v]=svd (a)

>> error: element number 4 undefined in return list

>> error: evaluating assignment expression near line 8, coloumn 15

Un'assegnazione comune è quella di incrementare una variabile esistente con un valore dato, come:

>> a=a+2

Che può essere scritto in modo più compatto con l'operatore +=

>> a+=2

Operatori simili esistono anche per sottrazione, moltiplicazioni e divisioni.

Un'espressione della forma

>> expr1 op= expr2

È valutata come:

>> expr1=(expr1) op (expr2)

Dove op può essere un altro operatore come +, -, *, /.

Operatori di incremento

Incrementano o decrementano il valore di una variabile di 1. L'operatore di incremento è scritto “++”?. Può incrementare la variabile prima o dopo che gli sia stato assegnato il valore. Per esempio, per preincrementare la variabile si scrive:

>> ++x

Aggiunge1 a x e dà  il nuovo valore di x come risultato dell'espressione. E' uguale all'espressione

>> x0x+1

Per postincrementare una variabile si scrive:

>> x++

Aggiunge 1 alla variabile x, ma da il valore che x aveva prima dell'incremento.

Per esempio, se x=2, il risultato dell'espressione x++ è 2 e il nuovo valore di x è 3.

Per gli elementi della matrice e del vettore, gli operatori di incremento e decremento lavorano su ogni elemento dell'operando. Espressioni di incremento e decremento:

++x incrementa la variabile x. Il valore dell'espressione è il nuovo valore di x. E'equivalente a x=x+1

--x decrementa la variabile x. E' equivalente a x=x-1

X++ porta la x a essere incrementata. Il valore dell' espressione è il vecchio valore di x

x-- porta la x a essere decrementata. Il valore dell'espressione è il vecchio valore di x.

Operatori di precedenza

Determinano come gli operatori sono raggruppati, quando operatori diversi compaiono nella stessa espressione. Per esempio, * ha precedenza rispetto a 2+. Quindi l'espressione

>> a+b*c

Significa moltiplicare b*c e aggiungere a al prodotto (a+(b*c)).

E' comunque opportuno utilizzare le parentesi quando c'è una combinazione inusuale di operatori, in quanto chi legge il programma potrebbe non ricordare qual è la precedenza.

Domande da interrogazione

  1. Quali sono le condizioni necessarie per eseguire operazioni aritmetiche tra matrici?
  2. Le matrici devono avere lo stesso numero di righe e colonne per operazioni come addizione, sottrazione e moltiplicazione.

  3. Come funzionano gli operatori di comparazione per le matrici?
  4. Gli operatori di comparazione lavorano elemento per elemento e restituiscono 1 se la comparazione è vera e 0 se è falsa.

  5. Cosa succede quando si assegna un valore scalare a una matrice indicizzata?
  6. Tutti gli elementi chiamati dall'indice vengono impostati uguali al valore dello scalare.

  7. Come si possono eseguire assegnazioni multiple contemporaneamente?
  8. È possibile assegnare lo stesso valore a più variabili in una singola espressione, ad esempio, x=y=z=0.

  9. Qual è la differenza tra preincremento e postincremento di una variabile?
  10. Il preincremento (++x) incrementa la variabile prima di restituire il nuovo valore, mentre il postincremento (x++) restituisce il valore originale prima di incrementare la variabile.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community