
La rotazione di una matrice su Matlab
In questa lezione ti spiego come ruotare una matrice o un array su Matlab.
Cosa significa ruotare la matrice? L'operazione di rotazione gira la matrice in senso orario (verso destra) o antiorario (verso sinistra). Ad esempio, una rotazione in senso orario di 90° trasforma una matrice 2x3 in una matrice 3x2 dove la prima e la seconda riga diventano rispettivamente la seconda e la prima colonna.

Ti faccio un esempio pratico.
Crea una matrice rettangolare 2x3 con due righe e tre colonne.
>> M = [ 1 2 3 ; 4 5 6 ]
M =
1 2 3
4 5 6
Poi digita il comando il comando rot90(M,1) per effettuare una rotazione di 90° della matrice verso sinistra.
>> rot90(M,1)
ans =
3 6
2 5
1 4
Matlab ruota di 90° la matrice verso sinistra.

Nota. In alternativa puoi ottenere la stessa rotazione digitando rot90(M) perché Matlab considera il secondo parametro uguale a 1 di default. Il verso di default è quello antiorario (verso sinistra) perché è il verso adottato in matematica e in fisica.
Per ruotare la matrice verso destra, ossia in senso orario, indica un valore negativo nel secondo parametro della funzione rot90().
Ad esempio, digita rot90(M,-1) per ottenere una rotazione di 90° della matrice di 90° verso destra.
>> rot90(M,-1)
ans =
4 1
5 2
6 3
In questo caso Matlab compie una rotazione di 90° della matrice della matrice in senso orario (verso destra).

Per ruotare la matrice di 180° in senso antiorario digita rot90(M,2)
>> rot90(M,2)
ans =
6 5 4
3 2 1
In questo caso Matlab compie due rotazioni di 90° della matrice in senso antiorario ossia verso sinistra.

Per ruotare la matrice di 180° in senso orario digita rot90(M,-2).
>> rot90(M,-2)
ans =
6 5 4
3 2 1
Matlab compie due rotazioni di 90° della matrice in senso orario (verso destra) perché il secondo parametro è un numero intero negativo ossia -2.

In pratica la funzione rot90(M,n) ti permette di effettuare un numero qualsiasi di rotazioni di 90°.
Il secondo parametro (n) della funzione è il numero delle rotazioni verso sinistra (n>0) o verso destra (n<0).
Ad esempio, per ruotare la matrice di 270° in senso antiorario (verso sinistra) digita rot90(M,3)
>> rot90(M,3)
ans =
4 1
5 2
6 3
Matlab compie tre rotazioni di 90° della matrice in senso antiorario.

Nota. Per ottenere una rotazione 270° in senso orario devi semplicemente digitare rot90(M,-3) indicando il numero intero negativo -3 come secondo parametro della funzione rot90().
Per compiere una rotazione di 360° in senso antiorario digita rot90(M,4)
>> rot90(M,4)
ans =
1 2 3
4 5 6
Quando effettui una rotazione di 360° è indifferente se la rotazione è in senso antiorario (4), in senso orario (-4) oppure nullo (0).

In entrambi i casi il risultato è sempre lo stesso.

