Saving in txt format in Matlab with commas and semicolons

8 Ansichten (letzte 30 Tage)
MRC
MRC am 20 Jan. 2015
Kommentiert: Image Analyst am 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?

Antworten (1)

Image Analyst
Image Analyst am 20 Jan. 2015
Bearbeitet: Image Analyst am 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 Kommentare
MRC
MRC am 20 Jan. 2015
Bearbeitet: MRC am 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 am 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));

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Environment and Settings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by