我需要使用“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”的结果,我也不需要编写它们。怎么办呢?
答案 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
阅读。