|
|
| Operatori aritmetici, logici | di A. Calati M. Urbano |
|
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
X\Y 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<Y vero se x è minore di y
X<=Y vero se x è minore o uguale a y
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
X<>Y 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
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.
Scrivi Commento
Powered by AkoComment Tweaked Special Edition v.1.4.6 |
||||||
| < Prec. | Pros. > |
|---|
|
Iniziative editoriali
|
Test - quiz - simulazione |
Gioca con la matematica |
|
|
|
|
|
|