我用两个条目为复数的数据文件进行matlab操作。例如,
fName = '1corr.txt';
f = dlmread('1EA.txt',',');
fid = fopen(fName);
tline = '';
然后我在这两个文件之间进行矩阵和其他操作并编写我的输出,我称之为' modTrace'为:
modTrace
fileID = fopen('1out.txt','w');
v = [(0:(numel(modTrace)-1)).' real(modTrace(:)) ].';
fprintf(fileID,'%d %e\n',v);
问题是,如果我有100对这样的数据文件,如(2corr.txt,2EA.txt),....(50corr.txt,50EA.txt)我怎样才能推广输入文件以及如何一次编写所有输出文件?
答案 0 :(得分:1)
首先,使用sprintf根据当前索引获取变量名称。
corrName=sprintf('%dcorr.txt',idx);
EAName=sprintf('%dEA.txt',idx);
outName=sprintf('%dout.txt',idx);
这样,您就有了一个必须更改的变量(idx
)。
最后将所有内容放入循环中:
n=100
for idx=1:n
corrName=sprintf('%dcorr.txt',idx);
EAName=sprintf('%dEA.txt',idx);
outName=sprintf('%dout.txt',idx);
f = dlmread(EAName,',');
fid = fopen(corrName);
tline = '';
modTrace
fileID = fopen(outName,'w');
v = [(0:(numel(modTrace)-1)).' real(modTrace(:)) ].';
fprintf(fileID,'%d %e\n',v);
end
您也可以使用n=numel(dir('*EA.txt'))
,而不是对数字100进行硬编码。它计算以EA.txt