【发布时间】:2012-11-26 19:25:58
【问题描述】:
我想汇总我用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]);
当我尝试使用与前两个相同的 texscan 和 horzcat 时,它会给出 内存不足错误,但对于后一个代码,它只会在以下情况下对这些文件内容的最后一行求和我试试:
for i = i:8
Sum = A+B % this from first 2 files works
Sum3Files = file1+file2+files3;
end
我知道这看起来可能很简单,但我是 MATLAB 新手,非常感谢您的帮助。
【问题讨论】:
-
我现在手头没有 Matlab,但是
Wfid=fopen(VFile,'a');行会打开一个文件进行追加,尝试 'r' 进行读取。最后一个代码块的循环不依赖于 i(您可能还想使用另一个字母,因为 i 是 sqrt(-1)) -
您好,感谢您的回答。我试过'r'而不是'a',但还是一样。我也知道循环中的东西与我无关,但我不知道如何编写它,因此它逐行汇总所有文件。它适用于我使用“horzcat”的前一段代码,所以我在这里尝试了相同的操作。我不知道如何将 i 与文件内容联系起来 - 我想它因此不起作用。