2017-09-01 4 views
2

de Disons que j'ai une matrice complexe:Matlab: matrice complexe fprintf au fichier txt

A = [3-3i 3.2 3.1 2.2212; 2.31-8i 9.9i 0.12i 2.23i;9.1i 9 9.999 0.12;1.2i 1.8i 8 9.0001]; 

Comment puis-je imprimer cette matrice complexe dans un fichier txt? J'essaie: fprintf(fid, [repmat('%.8f\t', 1, size(A, 2)) '\n'], A');

mais il imprime seulement les nombres réels.

+0

C'est l'une de ces situations où vous devez être très prudent sur la façon dont vous transposez vos données. L'opérateur '' 'est le [complexe conjugate transpose] (https://www.mathworks.com/help/matlab/ref/ctranspose.html) (qui permute les lignes et les colonnes * et * annule les parties imaginaires) et le' L'opérateur .'' est le régulier [transpose] (https://www.mathworks.com/help/matlab/ref/ctranspose.html) (qui permute simplement les lignes et les colonnes). Vous ** presque toujours ** voulez utiliser '.''. – gnovice

Répondre

2

Vous pouvez afficher les parties réelles et imaginaires séparément comme ceci:

fprintf(fid, [repmat('%.8f%+.8fi\t', 1, size(A, 2)) '\n'], ... 
     [real(reshape(A.', 1, [])); imag(reshape(A.', 1, []))]);