2

我想对我创建的文件求和fprintf。我有 5 个包含类似内容的文本文件(1 列 8 行):

0.1811  
0.0889  
-0.1073  
-0.0777  
-0.0596  
0.0971  
0.1021  
0.3730  

我正在尝试将这些文件加载​​到工作区并对这些列求和。我可以对两个文件的列求和,但最后 3 个文件的总和仅适用于最后一行(第 8 行)。我知道这与加载和打开文件有关。最后两个文件加载了:

SumFid=fopen(MyFile,'a');   %this is how my 2 files work opened
FID=fopen(FirstFile);  
MatrixSub = load(FirstFile);  
m = textscan(FID,'%f %f %f %f %f %f %f');  
horzcat(m{:})      

而对于我正在使用的其他 3 个文件:

Wfid=fopen(VFile,'a');  
Mat = load(VFile);  
VData = fscanf(Wfid,'%f',[8,1]);  

当我尝试使用与前两个相同texscanhorzcat方法时,它会给出错误 out of memory,但是对于后一个代码,它只会在我尝试时对这些文件内容的最后几行求和:

for i = i:8  
  Sum = A+B % this from first 2 files works  
  Sum3Files = file1+file2+files3;        
end  

我知道它看起来可能很微不足道,但我是 MATLAB 的新手,非常感谢您的帮助。

4

1 回答 1

0

我认为这样的事情是你所追求的:

total = 0;
files = {'data.txt' 'data2.txt'};  % add more files here

for ii = 1:numel(files)

    fid = fopen(files{ii});
        C = textscan(fid, '');        
    fclose(fid);

    total = total + [C{:}];

end
于 2012-11-24T08:03:01.397 回答