Matlab顺序文件循环问题

时间:2014-12-15 00:19:08

标签: matlab for-loop

只需要一些我的matlab代码的帮助。

%import Sequential files

clc % clear window
clear %clear workspace

numfiles=4;

data=cell(1,numfiles);

for k = 2:numfiles
    myfilename=sprintf('J678501%d.mat',k);
    data{k}=importdata(myfilename);
end

for a= 1:3
    order_directory(a)=data(:,(a+1));
end


**for n = 56:59
   F=getfield((data{1,2}),sprintf('order_%d',n));
end**

wavelength=F(:,1);
intensity=F(:,2);

星号区是我需要帮助的地方。

我的文件在order_56到order_141的订单中列出(我暂时只把56:59放到),但我错过了几个订单(例如order_60和order_100 - 也许是其他订单)在其他文件中..它不一致)如果文件不在那里,我怎样才能让matlab跳过一个文件并进入下一个文件?

由于 CAZ

1 个答案:

答案 0 :(得分:0)

我无法对此进行测试,但您可以使用exist来检查文件是否存在。然后跟踪fileNumbers向量中存在哪些,并使用它循环。

fileNumbers=[];
for k = 2:numfiles
    myfilename=sprintf('J678501%d.mat',k);
    if exist(myfilename)
        fileNumbers=[fileNumbers k];
        data{k}=importdata(myfilename);
    end
end

然后当你使用数据时

for n=fileNumbers
    F=getfield((data{1,2}),sprintf('order_%d',n));
end