Question

Je veux sauver une matrice dans un fichier texte, afin que je puisse le lire par un autre programme. En ce moment, j'utilise:

save('output.txt', 'A','-ascii');

Mais cela sauve mon dossier comme

6.7206983e+000  2.5896414e-001
6.5710723e+000  4.9800797e-00
6.3466334e+000  6.9721116e-001
5.9975062e+000  1.3346614e+000
6.0224439e+000  1.8127490e+000
6.3466334e+000  2.0517928e+000
6.3965087e+000  1.9721116e+000

Mais je voudrais les sauver sans le « e-notation » et non avec tous les chiffres. Est-il un moyen facile de le faire?

Edit: Merci! Cela fonctionne très bien. Désolé, mais je pense que je foiré votre édition en utilisant le rollback.

Était-ce utile?

La solution

J'utiliser le fprintf fonction, ce qui vous permettra de définir pour vous-même quel format de sortie des données. par exemple:

fid = fopen('output.txt', 'wt');
fprintf(fid,'%0.6f %0.6f\n', A.');
fclose(fid);

Ceci sortie la matrice A avec 6 chiffres de précision après la virgule. Notez que vous devez également utiliser les fonctions fopen et fclose .

Autres conseils

La solution de Ditto gnovice, si vous avez besoin de mise en forme de performance et personnalisée.

dlmwrite vous donne un certain contrôle (global , pas une base par champ) de mise en forme. Mais il souffre d'une faible performance. J'ai couru un test il y a quelques années et dlmwrite était quelque chose comme 5-10x plus lent que le fopen / fprintf / solution fclose. (Edit: Je fais référence à de grandes matrices, comme une matrice 15x10000)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top