【问题标题】:Sampling from data从数据中采样
【发布时间】:2014-12-28 19:04:00
【问题描述】:

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

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

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

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 样本,在这种情况下,我只想通过下一个文件来获取样本。提前谢谢你。

【问题讨论】:

    标签: arrays matlab matrix signal-processing sample


    【解决方案1】:

    据我了解,您想在length(ValuesWithinLimit)&lt;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
    

    【讨论】:

    • @Ram 如果您使用break,那么您将退出循环并且您不会尝试其他数据。但是continue 只会逃脱一个m
    猜你喜欢
    • 1970-01-01
    • 2018-06-18
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多