Matlab输入/输出几个文件

时间:2014-04-16 21:18:38

标签: matlab

我用两个条目为复数的数据文件进行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)我怎样才能推广输入文件以及如何一次编写所有输出文件?

1 个答案:

答案 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

结尾的文件