HOWTO · MATLAB
Transposer dans MATLAB
On peut prendre la transposition d'une matrice en utilisant les fonctions transpose() et ctranspose() dans MATLAB.
Sur cette page
Dans MATLAB, utilisez transpose(A) ou A.' pour échanger les lignes et les colonnes sans modifier les valeurs complexes. Utilisez ctranspose(A) ou A' pour échanger les lignes et les colonnes tout en conjuguant les valeurs complexes. Pour les tableaux à valeurs réelles, les deux opérations donnent le même résultat ; pour les tableaux à valeurs complexes, choisissez celle qui correspond au calcul souhaité.
Calculer la transposée d’une matrice avec la fonction transpose() de MATLAB
La fonction transpose() renvoie un vecteur ou une matrice dont les lignes et les colonnes sont échangées. Un vecteur ligne devient un vecteur colonne, et une matrice de m lignes et n colonnes devient une matrice de n lignes et m colonnes. La fonction ne conjugue pas les éléments complexes. L’opérateur .' effectue la même transposition ordinaire ; les deux formes peuvent donc être utilisées dans du code MATLAB.
Cet exemple MATLAB compatible avec Octave utilise une matrice réelle et affiche le résultat avec disp. Il s’exécute correctement et affiche la matrice avec ses lignes et ses colonnes échangées.
A = [1 2 3; 4 5 6];
T = transpose(A);
disp(T)
1 4
2 5
3 6
La première ligne de A devient la première colonne de T, et la deuxième ligne devient sa deuxième colonne. Pour effectuer une transposition ordinaire avec l’opérateur, écrivez T = A.';. Le point placé avant l’apostrophe est important : il indique une transposition qui ne conjugue pas les éléments complexes. Cette forme et transpose(A) sont équivalentes pour l’opération présentée. Consultez la documentation MATLAB sur transpose pour en savoir plus sur la fonction.
Calculer la transposée conjuguée d’une matrice avec la fonction ctranspose() de MATLAB
La fonction ctranspose() échange les lignes et les colonnes, puis conjugue chaque élément. Pour un nombre complexe, la conjugaison change le signe de sa partie imaginaire : par exemple, 1 + 2i devient 1 - 2i. L’opérateur apostrophe de MATLAB, A', effectue cette transposition conjuguée. Pour des données complexes, le résultat diffère de celui d’une transposition ordinaire ; si l’entrée peut contenir des nombres complexes, choisissez donc délibérément l’opérateur ou la fonction.
Cet autre exemple MATLAB compatible avec Octave montre l’opération sur un vecteur ligne complexe. Il s’exécute correctement et affiche les valeurs conjuguées dans une colonne.
A = [1+2i 2+3i];
T = ctranspose(A);
disp(T)
1 - 2i
2 - 3i
Le résultat est un vecteur colonne dont les éléments sont 1 - 2i et 2 - 3i : le vecteur ligne devient un vecteur colonne et le signe de chaque partie imaginaire change. Vous pouvez écrire la même opération ainsi : T = A';. Pour un vecteur ou une matrice à valeurs réelles, la conjugaison ne modifie aucun élément ; ctranspose(A) et transpose(A) renvoient donc des valeurs égales. Pour des données complexes, leurs résultats diffèrent généralement. Utilisez transpose() ou .' pour échanger uniquement les lignes et les colonnes, et ctranspose() ou ' lorsque la conjugaison fait partie du résultat souhaité. Consultez la documentation MATLAB sur ctranspose pour plus de détails.