HOWTO · MATLAB

Trasposizione MATLAB

Si può prendere la trasposizione di una matrice usando le funzioni transpose() e ctranspose() in MATLAB.

In questa pagina

In MATLAB, usa transpose(A) o A.' per scambiare righe e colonne senza modificare i valori complessi. Usa ctranspose(A) o A' per scambiare righe e colonne e coniugare i valori complessi. Per gli array con valori reali, le due operazioni danno lo stesso risultato; per quelli con valori complessi, scegli l’operazione adatta al calcolo che vuoi eseguire.

Calcolare la trasposizione di una matrice con la funzione transpose() in MATLAB

La funzione transpose() restituisce un vettore o una matrice con righe e colonne scambiate. Un vettore riga diventa un vettore colonna; una matrice con m righe e n colonne diventa una matrice con n righe e m colonne. La funzione non coniuga gli elementi complessi. L’operatore .' esegue la stessa trasposizione ordinaria: entrambe le forme sono utili quando si scrive codice MATLAB.

Questo esempio MATLAB, compatibile con Octave, usa una matrice reale e visualizza il risultato con disp. L’esempio viene eseguito correttamente e stampa la matrice con righe e colonne scambiate.

A = [1 2 3; 4 5 6];
T = transpose(A);
disp(T)
   1   4
   2   5
   3   6

La prima riga di A diventa la prima colonna di T e la seconda riga diventa la seconda colonna. Per eseguire una trasposizione ordinaria con l’operatore, scrivi T = A.';. Il punto prima dell’apostrofo è importante: seleziona una trasposizione che non coniuga gli elementi complessi. Questa forma e transpose(A) sono equivalenti per l’operazione mostrata. Per i dettagli sulla funzione, consulta la documentazione MATLAB di transpose.

Calcolare la trasposizione coniugata complessa di una matrice con la funzione ctranspose() in MATLAB

La funzione ctranspose() scambia righe e colonne e calcola il coniugato complesso di ogni elemento. In un numero complesso, la coniugazione cambia il segno della parte immaginaria: per esempio, 1 + 2i diventa 1 - 2i. L’operatore apostrofo di MATLAB, A', esegue questa trasposizione coniugata complessa. Per i dati complessi il risultato è diverso da quello della trasposizione ordinaria, quindi scegli con attenzione l’operatore o la funzione quando l’input può contenere valori complessi.

Questo esempio MATLAB, compatibile con Octave, mostra l’operazione su un vettore riga complesso. L’esempio viene eseguito correttamente e visualizza i valori coniugati in una colonna.

A = [1+2i 2+3i];
T = ctranspose(A);
disp(T)
   1 - 2i
   2 - 3i

Il risultato è un vettore colonna con gli elementi 1 - 2i e 2 - 3i: la riga diventa una colonna e il segno di ogni parte immaginaria cambia. Puoi scrivere la stessa operazione come T = A';. Per un vettore o una matrice con valori reali, la coniugazione lascia invariato ogni elemento, quindi ctranspose(A) e transpose(A) restituiscono valori uguali. Con dati complessi, invece, i risultati in genere differiscono: usa transpose() o .' quando vuoi soltanto scambiare righe e colonne, e ctranspose() o ' quando vuoi anche coniugare i valori. Per ulteriori dettagli, consulta la documentazione MATLAB di ctranspose.