Concetti Chiave

  • Gli operatori aritmetici permettono di eseguire operazioni come addizione, sottrazione, moltiplicazione e divisione su matrici, richiedendo che abbiano lo stesso numero di righe e colonne per alcune operazioni.
  • Gli operatori di comparazione restituiscono 1 se la condizione è vera e 0 se è falsa, lavorando elemento per elemento su matrici.
  • Gli operatori booleani utilizzano espressioni di comparazione e restituiscono valori veri o falsi, a seconda del risultato delle condizioni confrontate.
  • Le assegnazioni possono memorizzare nuovi valori in variabili e supportano anche la cancellazione di righe o colonne in matrici, oltre alla possibilità di assegnazioni multiple.
  • Gli operatori di incremento e decremento modificano il valore di una variabile di 1, con la possibilità di farlo prima o dopo l'assegnazione originale.

Operatori aritmetici

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.

Operatori di comparazione

**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=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

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

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

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

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. Qual è la differenza tra l'addizione di matrici e l'addizione elemento per elemento?
  2. L'addizione di matrici (X+Y) richiede che X e Y abbiano lo stesso numero di righe e colonne, mentre l'addizione elemento per elemento (X.+Y) somma i singoli elementi delle matrici indipendentemente dalla loro dimensione.

  3. Come funziona la sottrazione tra matrici?
  4. La sottrazione (X-Y) tra matrici è valida solo se X e Y hanno lo stesso numero di righe e colonne, mentre la sottrazione elemento per elemento (X.-Y) opera su ciascun elemento delle matrici.

  5. Cosa rappresentano gli operatori di comparazione?
  6. Gli operatori di comparazione restituiscono 1 se la condizione è vera e 0 se è falsa, lavorando elemento per elemento per le matrici, come illustrato dall'esempio di uguaglianza tra matrici.

  7. Qual è la funzione degli operatori di assegnazione?
  8. Gli operatori di assegnazione memorizzano un nuovo valore in una variabile, come nel caso di "z=1", e possono anche assegnare stringhe o modificare elementi di matrici.

  9. Come si utilizzano gli operatori di incremento?
  10. Gli operatori di incremento (come ++x e x++) aumentano il valore di una variabile di 1, con la differenza che il preincremento restituisce il nuovo valore, mentre il postincremento restituisce il valore precedente.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community