用逗号和分号在Matlab中以txt格式保存

时间:2015-01-20 21:41:16

标签: matlab

我在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;

你能帮帮我吗?另外,你知道一种使指数形式消失的方法吗?

1 个答案:

答案 0 :(得分:2)

首先,使用Luis Mendo的方法将数值数组转换为字符矩阵,该字符矩阵用逗号分隔,每行末尾用分号分隔:

str = num2str(A, '%i, '); 
str(:,end) = ';';

接下来,将字符数组的每一行转换为单元格数组:

s = mat2cell(str, ones(1,size(str,1)), size(str,2));

现在,使用fopenfprintffclose将数据写入文件:

fid = fopen('prova.txt', 'w');
fprintf(fid, '%s\n', s{:});
fclose(fid);

这是我在检查prova.txt时所得到的:

1, 2, 3;
4, 5, 6;
7, 8, 9;