2010-08-23 5 views
13

J'ai une matrice 2D myMatrix d'entiers dont je veux enregistrer son contenu dans un fichier texte. Je l'ai fait ce qui suit:Comment enregistrer une matrice d'entiers dans un fichier texte dans Matlab?

save myFile.txt myMatrix -ASCII 

Je reçois ce message:

Avertissement: Tentative d'écriture d'un type de données non pris en charge dans un fichier ASCII. La variable 'myMatrix' n'est pas écrite dans le fichier. et rien n'est écrit.

Que faire?

Répondre

20

Pour écrire à myMatrix monFichier.txt:

dlmwrite('myFile.txt', myMatrix); 

Pour lire le fichier dans une nouvelle matrice:

newMatrix = dlmread('myFile.txt'); 
2

Vous devez convertir votre matrice en double avant d'utiliser Enregistrer.

>> myMatrix2 = double(myMatrix); 
>> save myFile.txt myMatrix2 -ASCII 
+0

A) la première ligne me donne 'Sur memory'. B) Fichier 'myFile.txt' a des entrées comme' 4.2280000e + 03', je voudrais '4228' –

+0

Vous pouvez essayer d'utiliser simple au lieu de double. Mais je vous recommande d'utiliser la méthode donnée par Snakile, c'est beaucoup mieux. Une alternative serait d'utiliser la fonction fprintf, là vous pouvez aussi spécifier le format de la sortie. – Ghaul

-1

bâtiment sur snakile's earlier answer: écrire myMatrix à monFichier.txt, en utilisant CR/LF comme terminaison de ligne ('pc'), sinon, vous devez utiliser LF ('unix'):

dlmwrite('myFile.txt', myMatrix,'newline','pc'); 

Pour lire le fichier dans une nouvelle matrice:

newMatrix = dlmread('myFile.txt');