回答
通常你和迭代多种方式。有两种主要的方法可以从我的头脑中思考。我也会为社区维基开放它,以便其他人也可以轻松地编辑它。
首先,使用简单的For
循环。
一般语法for index = 1:someValue
someValue
确实可以是任意大于1
在这种情况下。很多时候,它只是您想要遍历的矩阵的最后一个索引值。
虽然你可以修改这个!假设您希望每个第三个索引从矩阵中的第二个位置开始。所有你需要做的是:for index = 2:3:someValue
这里的3告诉循环,它应该在每个循环迭代结束时在index
上加3,直到你达到(或超过)someValue
。
另一种修改是向后遍历。在这种情况下,你从'结束'开始并移动到开始。它看起来像这样:for index = someValue:-1:1
你也可以在倒退for index = someValue:-4:1
的同时做每4个索引。
显然,您可以将两个:
之间的值替换为所需的步长。您只需注意可能引发的潜在索引问题。即尝试索引超出矩阵的范围或可能变为负值。
其次在这里你可以修改循环本身的价值。通常,当您使用for
循环时,这不是最好的办法,因为您的索引变量的值将由循环和循环中的循环更改。很多时候,你会看到这是通过while
循环或do while
组合来完成的。
的几个例子如下:
index = 0;
do
{
% some operations
index = index + aNumber;
}while(index <= someValue)
在上述例子中的循环将继续循环,直到索引值index
在循环的当前迭代的末端变得大于或等于someValue
。这种类型的循环将始终,我重复总是至少执行一次。
index = 0;
while(index <= someValue)
{
%some operations
index = index + aNumber;
}
在这种情况下,循环将继续循环,同时index
满足逻辑语句这里。如果当您尝试首次运行循环时语句不成立,它将根本不会执行。
希望这可以帮助,并随时要求任何额外的澄清,如果你想要它!
其他人,请随时编辑添加其他信息,或收拾东西,我可能还没有完全解释=)
你的意思是这样的:
for i = [1:5 7:10 12:14 21:22]
do_func(i)
end
甚至
for i = [1:5 4:7 19:-1:15]
do_func(i)
end
?
如果您仅希望在一定条件下在一个循环是真正要执行的操作,你只需要像这样:
for i=1:length(arr)
if condition(arr(i))
do_something(arr(i));
end
end
谢谢,解决问题!我去了这个方向,并创建了双循环。一直到指定的上限,内层从上限迭代直到下限递减。 – beginh 2012-07-26 16:37:26
- 1. 遍历多个字段名
- 2. Ansible:遍历多个{{项目}}
- 3. 遍历多个$ _ POST阵列
- 4. 遍历多个文件
- 5. JQuery多个.not树遍历
- 6. 如何遍历多个XCUIElements
- 7. 遍历多行
- 8. matlab如何遍历工作区中的所有对象
- 9. 遍历树遍历
- 10. 遍历,多对多模式
- 11. MATLAB:通过循环数组遍历
- 12. 使用jQuery遍历多个html表格
- 13. 同时遍历多个数据帧
- 14. 基于多个顶点的遍历
- 15. 遍历多个列表连续(C++)
- 16. 循环遍历多个列表 - Python
- 17. 角4.0:遍历多个输入字段
- 18. 如何遍历多个对象在玉
- 19. Python的遍历多个文件
- 20. 在SQL中遍历多个CSV
- 21. 遍历多个级别童车
- 22. R表示遍历多个变量
- 23. 滑轨遍历多个散列
- 24. 循环遍历多个标签数组
- 25. Python BeautifulSoup - 循环遍历多个页面
- 26. cURL遍历多个页面的登录
- 27. Jsoup逐个遍历
- 28. 遍历整个div
- 29. 遍历PHP多维数组
- 30. 遍历多阵列指针
你是什么意思的时间?实际运行循环所用的时间,或者您正在循环的数组的索引? – Isaac 2012-07-20 12:23:30
我的意思是我运行循环迭代1 - 200, ,我想创建一个条件,迭代将完成间隔例如30 - 50,然后100 - 120.所以我想打破执行的剩余时间间隔的循环,但不能完全中止。那可能吗? – beginh 2012-07-24 13:03:12
与@High Performance Mark的答案有何不同? – Isaac 2012-07-24 13:09:21