Saving in txt format in Matlab with commas and semicolons

6 ビュー (過去 30 日間)
MRC
MRC 2015 年 1 月 20 日
コメント済み: Image Analyst 2015 年 1 月 20 日
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?

回答 (1 件)

Image Analyst
Image Analyst 2015 年 1 月 20 日
編集済み: Image Analyst 2015 年 1 月 20 日
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 件のコメント
MRC
MRC 2015 年 1 月 20 日
編集済み: MRC 2015 年 1 月 20 日
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 2015 年 1 月 20 日
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));

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeText Files についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by