lettura facile

Come modificare il numero di righe e colonne di una matrice su Matlab

In questa lezione ti spiego come modificare il numero delle righe e/o delle colonne di una matrice in Matlab lasciando immutato il numero complessivo degli elementi della matrice.

Ti faccio un esempio pratico.

Crea una matrice rettangolare 3x2 composta da tre righe e due colonne.

>> M = [ 1 2 ; 3 4 ; 5 6 ]
M =
1 2
3 4
5 6

Ora digita la funzione reshape(M,2,3) per trasformare la matrice in una matrice rettangolare 2x3 con due righe e tre colonne.

>> reshape(M,2,3)
ans =
1 5 4
3 2 6

La matrice di destinazione deve avere lo stesso numero di elementi.

Quindi, trasformare la matrice iniziale anche 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.

Puoi anche trasformare un vettore in una matrice.

Ad esempio, crea un vettore composto da otto elementi

>> v = [ 1 2 3 4 5 6 7 8 ]
v =
1 2 3 4 5 6 7 8

Poi 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

La matrice ha lo stesso numero di elementi del vettore.

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 qualsiasi vettore in una matrice e viceversa, purché il numero totale degli elementi resti lo stesso.

Il comando reshape va in errore quando il numero degli elementi è diverso

Ad esempio, non puoi convertire una matrice 4x2 in una matrice 3x3 perché la prima matrice ha 8 elementi mentre la seconda matrice ha 9 elementi.

In questo caso il comando reshape() restituisce un messaggio di errore.

>> reshape(M,3,3)
Error using reshape
Number of elements must not change. Use [ ] as one of the size inputs to automatically calculate the appropriate size for that dimension




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin