Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 跳过for循环中的迭代_Matlab_Loops_For Loop_Iteration - Fatal编程技术网

Matlab 跳过for循环中的迭代

Matlab 跳过for循环中的迭代,matlab,loops,for-loop,iteration,Matlab,Loops,For Loop,Iteration,有没有一种有效的方法可以跳过for循环中的迭代 我有一个由标准普尔500指数期权价格组成的大数据集。数据集范围从1992年到2009年。现在,我总共有3481个引用日期,这些日期存储在我称之为QDvector的某个向量中。我只对2008年到2009年的报价日期感兴趣。对于每个报价日期,我都运行一个特定的程序。报价日期为3290至3481。但是,在某些特殊情况下(很少),由于缺乏库存数据,该程序无法运行。如何在for循环中跳过这些迭代 例如,假设我有 for index = 3290:3481

有没有一种有效的方法可以跳过for循环中的迭代

我有一个由标准普尔500指数期权价格组成的大数据集。数据集范围从1992年到2009年。现在,我总共有3481个引用日期,这些日期存储在我称之为
QDvector
的某个向量中。我只对2008年到2009年的报价日期感兴趣。对于每个报价日期,我都运行一个特定的程序。报价日期为3290至3481。但是,在某些特殊情况下(很少),由于缺乏库存数据,该程序无法运行。如何在for循环中跳过这些迭代

例如,假设我有

for index = 3290:3481
    [...]
end 
假设我不想考虑
索引==3389
。如何跳过此迭代

  • 我可以使用while循环,但我真的不想考虑这个索引,因为我还必须绘制某些参数,我想跳过与
    index==3389
    对应的参数
  • 我可以从
    QDvector
    中删除报价日期。我不喜欢这种方法,因为我还必须更改太多其他变量
我只是在寻找一种跳过某些迭代而不产生任何后果的好方法。

是的,该语句允许这样做

for index = 3290:3481
    [...]
    continue;    % wherever applicable
end

检查索引并在找不到时执行代码

for index = 3290:3481
    if index != 3389
        [...]
    end
end
如果没有else语句,当该语句为false时将不会发生任何事情,从而有效地跳过索引

或者:

for index = 3290:3481
    if index == 3389
        continue
    else
        [...]
    end
end

效率稍低,因为将运行检查,并且在大多数情况下,将进展到else。但是,仅通过191次,可能不会引起注意。

您不需要“其他”,继续将跳过循环正文的其余部分,以进行性能比较