我在Matlab中有一个巨大的矩阵,我希望以.txt格式(或任何其他文本格式)保存。
假设矩阵是
A =
1 2 3
4 5 6
7 8 9
如果我输入save prova.txt A -ASCII
,我会将.txt格式的矩阵作为
1 2 3
4 5 6
7 8 9
(实际上是一种可怕的指数形式)
我想改为
1,2,3;
4,5,6;
7,8,9;
你能帮帮我吗?另外,你知道一种使指数形式消失的方法吗?答案 0 :(得分:2)
首先,使用Luis Mendo的方法将数值数组转换为字符矩阵,该字符矩阵用逗号分隔,每行末尾用分号分隔:
str = num2str(A, '%i, ');
str(:,end) = ';';
接下来,将字符数组的每一行转换为单元格数组:
s = mat2cell(str, ones(1,size(str,1)), size(str,2));
现在,使用fopen
,fprintf
和fclose
将数据写入文件:
fid = fopen('prova.txt', 'w');
fprintf(fid, '%s\n', s{:});
fclose(fid);
这是我在检查prova.txt
时所得到的:
1, 2, 3;
4, 5, 6;
7, 8, 9;