从数据中抽样

时间:2014-11-01 18:58:45

标签: arrays matlab matrix signal-processing sample

我想从一些文件中获取一些样本。

但是,在某些文件中没有足够的样本。

在这种情况下,我只想跳过这个文件并传递给下一个文件。有谁知道,我怎么能这样做。我在下面添加了我的代码。

for m=1:size(examples,1)
      ValuesInChannel=data(:,channel+4); 
      ESUTime= data(:,18);
      ValuesWithinLimit=ValuesInChannel(find(ESUTime>=examples(m) & ESUTime<=limit1(m)));
      SampleFromEdf=datasample(ValuesWithinLimit,20,'Replace',false);
      SampleFromEdfwithchannel(m,:)=[SampleFromEdf',channel];
 end

在我的脚本的这一部分中,我的样本大小为20

如上所述,在某些文件中,无法获取20个样本,在这种情况下,我只想传递下一个文件来获取样本。提前谢谢。

1 个答案:

答案 0 :(得分:0)

据我所知,你想在length(ValuesWithinLimit)<20

时跳过循环
n = 0;
for m=1:size(examples,1)
      ValuesInChannel=data(:,channel+4); 
      ESUTime= data(:,18);
      ValuesWithinLimit=ValuesInChannel(find(ESUTime>=examples(m) & ESUTime<=limit1(m)));
      if length(ValuesWithinLimit)<20
         continue;
      else
         n = n + 1;
      end
      SampleFromEdf=datasample(ValuesWithinLimit,20,'Replace',false);
      SampleFromEdfwithchannel(n,:)=[SampleFromEdf',channel];
 end