Comment enregistrer-vous les données dans un fichier texte dans un format donné?
-
06-09-2019 - |
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.
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)