
Come cambiare il numero di righe e colonne di una matrice su Octave
In questa lezione ti spiego come cambiare il numero di righe e di colonne di una matrice su Octave senza modificare il numero totale degli elementi.
Ti faccio un esempio pratico.
Crea una matrice rettangolare 3x2 con tre righe e due colonne.
>> M = [ 1 2 ; 3 4 ; 5 6 ]
M =
1 2
3 4
5 6
Ora trasforma la matrice in una matrice 2x3 con due righe e tre colonne.
Digita la funzione reshape(M,2,3)
>> reshape(M,2,3)
ans =
1 5 4
3 2 6
Puoi anche trasformare la matrice iniziale in un vettore riga digitando reshape(M,1,6)
>> reshape(M,1,6)
ans =
1 3 5 2 4 6
oppure in un vettore colonna digitando reshape(M,6,1)
>> reshape(M,6,1)
ans =
1
3
5
2
4
6
I tutti i casi il numero degli elementi è invariato.
Nota. Di fatto un vettore è una matrice particolare con una sola riga 1x6 o una sola colonna 6x1.
Allo stesso modo puoi trasformare un vettore in una matrice.
Ad esempio, crea un vettore con otto elementi
>> v = [ 1 2 3 4 5 6 7 8 ]
v =
1 2 3 4 5 6 7 8
Trasforma il vettore in una matrice 2x4 con due righe e quattro colonne digitando reshape(v,2,4)
>> reshape(v, 2, 4)
ans =
1 3 5 7
2 4 6 8
In alternativa, puoi trasformare il vettore in una matrice 4x2 digitando reshape(v, 4, 2)
>> reshape(v, 4, 2)
ans =
1 5
2 6
3 7
4 8
In questo modo puoi convertire un vettore in una matrice o viceversa purché il numero degli elementi rimanga lo stesso.
Se il numero degli elementi è diverso il comando reshape() va in errore.
Ad esempio, non puoi trasformare una matrice 4x2 in una matrice 3x3 perché la prima matrice ha otto elementi mentre la seconda matrice ha nove elementi.
In questo caso il comando reshape() va in errore.
>> reshape(M,3,3)
error: reshape: can't reshape 3x2 array to 3x3 array
Se questa lezione di Nigiara è utile, continua a seguirci.