-1

我有几个名为 add_.txt 的文件,其编号为 1 -5,我想从每个文件中获取第一行信息(全为 1 的 5 矩阵)将它们加在一起,获取此信息并创建一个新文本与结果一起归档。显然答案只是 [5 5 5 5 5] 但我想知道如何编程才能到达那里。

我已经能够自学如何从同一个文档中“添加”两个数据字符串,并使用此代码创建一个带有答案的文本文件

fid=fopen('add.txt');
A = fgetl(fid);
AA = str2num(A)
B = fgets(fid);
BB = str2num(B)
C = AA + BB;
fclose(fid);
dlmwrite('results.txt', C)

但我不知道如何在多文件级别跳转到自动计算,任何帮助都会很棒。

4

1 回答 1

1

这样的事情应该可以解决问题:

% List of file names
% (can be auto-generated like so: filename = ['add_' num2str(ii) '.txt']
% with ii your iteration variable)
filenames = {'add_1.txt', 'add_2.txt', 'add_3.txt', 'add_4.txt', 'add_5.txt'};

% If you know the size of the first line: 
A = zeros(1,5);

% Loop through all filenames
for filename = filenames
    fid = fopen(filename{1});
    A = A + str2num( fgetl(fid) );%#ok
    fclose(fid);    
end

% Write results to file
dlmwrite('results.txt', A);

如果您事先知道 中有多少元素,则A必须稍微修改循环:

A = 0;
for filename = filenames
    fid = fopen(filenames{1});
    A = A + str2num( fgetl(fid) );%#ok
    fclose(fid);    
end
于 2013-06-11T16:42:43.810 回答