Effacer les filtres
Effacer les filtres

Saving in txt format in Matlab with commas and semicolons

9 vues (au cours des 30 derniers jours)
MRC
MRC le 20 Jan 2015
Commenté : Image Analyst le 20 Jan 2015
I have a huge matrix in Matlab that I want to save in .txt format (or in any other text format).
Suppose the matrix is
A =
1 2 3
4 5 6
7 8 9
If I type
save prova.txt A -ASCII
I get the matrix in .txt format as
1 2 3
4 5 6
7 8 9
(in an horrible exponential form, actually)
I would like to get instead
1, 2, 3;
4, 5, 6;
7, 8, 9;
Can you help me? In addition, do you know a way to make the exponential form disappear?

Réponses (1)

Image Analyst
Image Analyst le 20 Jan 2015
Modifié(e) : Image Analyst le 20 Jan 2015
Use
fid = fopen(filename, 'wt');
if fid ~= -1
for row = 1 : size(A, 1);
fprintf(fid, '%d, %d, %d;\n', A(row, 1), A(row, 2), A(row, 3));
end
fclose(fid);
end
  2 commentaires
MRC
MRC le 20 Jan 2015
Modifié(e) : MRC le 20 Jan 2015
What's filename in my case? Should I save before?
I can't type explicitly each row of A because it is a huge matrix in reality.
Image Analyst
Image Analyst le 20 Jan 2015
You can pick whatever filename you want.
You must be saving this as a text file. If it was a binary file or a .mat file then you wouldn't care at all about commas and semcolons because you would not see them at all.
If A has a huge number of columns, you can do
outputString = sprintf('%d, ', A(row, :));
% Get rid of final command and space and add a semicolon instead
fprintf('%s;', outputString(1:end-2));

Connectez-vous pour commenter.

Catégories

En savoir plus sur Text Data Preparation dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by