MATLAB - 在文本文件上添加数字

时间:2013-06-22 19:22:49

标签: matlab

我需要使用“importdata”来运行脚本,但我的文件底部的列数多于顶部的列数,如下所示:

示例1

2 2 3 2
2 2 1 1
1 0
2 4
1 1 2 200000 80000

它从4列开始,以5)结束,所以当我使用importdata时,它会生成一个包含4列的矩阵,从而损坏我的文件。我想要做的是在第一个数据行(或第二个文本行)的末尾添加任意数字,优先为0,以使其作为5列矩阵读取我的文件,如下所示:

示例1

2 2 3 2 0
2 2 1 1 0
1 0 0 0 0
2 4 0 0 0
1 1 2 200000 80000

据我所知,其他列中的零是5列矩阵中“importdata”的结果,我也不需要编写它们。怎么办呢?

1 个答案:

答案 0 :(得分:0)

您可以使用textscan来读取数据。以下是阅读文件的方法:

fid = fopen('example.txt');
mat = textscan(fid,'%d %d %d %d %d','CollectOutput', 1);
mat = mat{1}; % accesses matrix from cell array
mat(isnan(mat)) = 0; % sets NaN values to 0
fclose(fid);

结果:

mat =

           2           2           3           2           0
           2           2           1           1           0
           1           0           0           0           0
           2           4           0           0           0
           1           1           2      200000       80000

然后您可以将此文件另存为:

fid = fopen('newfile.txt','w');
fprintf(fid,'%d %d %d %d %d\r\n', mat);
fclose(fid); 

并使用importdata阅读。