0

我需要使用“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”的结果,我也不需要写它们。如何才能做到这一点?

4

1 回答 1

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.

于 2013-06-22T19:47:21.123 回答