在Matlab中以逗号和分号保存为txt格式
Saving in txt format in Matlab with commas and semicolons
我在 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;
你能帮帮我吗?另外,你知道让指数形式消失的方法吗?
首先,使用 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;
我在 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;
你能帮帮我吗?另外,你知道让指数形式消失的方法吗?
首先,使用 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;