对于循环,在不规则数字集群?
1次观看(过去30天)
显示旧的注释
我不得不做一个循环代码,但loopcounter(数字)非常不规则。
举例:12 3 4 6 7 8 10 12 13 14 15 16 18 19 20。
如果我在bash脚本中这样做,代码将像这样:[对于idx在{1..8} 10 {12..16} {18..20}; do echo $idx; done;]
有很好的方法来编码这种情况下用matlab?
(上面这行只是一个例子。在我的实际工作中,循环计数器会上升到数千。)
请分享一些智慧。谢谢你!
附注:实际上,在上面的例子中,当我从1循环到20时,有一个“不做”的数字列表,如[5,9,11,17]。
也许我应该创建一个数组[1…20]并从循环中删除“不做数字”(5,9,11,17)…?我不知道怎么做;;
0评论
接受的答案
Bjorn Gustavsson
2022年10月20日
编辑:Bjorn Gustavsson
2022年10月20日
你会从外部得到这些“待办事项”和“不待办事项”的列表,因为在你写作的时候,你不能把所有的数字都打下来。
如果你有外部显式的数字数组,它应该像这样简单:
函数disp_orders (idx_to_do)
V = idx_to_do(:)';
为K = v
disp (“现在上菜#”+ k)
结束
如果你有数字的范围和一个数字数组可以跳过,你可以很容易地修改:
函数disp_orders (idx_range idx_to_skip)
V = min(idx_range):max(idx_range);生成完整的列表
V = setdiff(V,idx_to_skip)删除那些不需要的
为K = v
disp (“现在上菜#”+ k)
结束
在这里,您显然必须使用函数内适合您的问题的代码片段。这就是你的问题。
HTH
2的评论
Bjorn Gustavsson
2022年10月21日
不客气,很高兴能帮到你。
对于matlab的使用,肯定存在某种N%- m %的规则,也许在80%的情况下,现有的matlab函数解决了至少80%的问题——有时只是如何找到它们的问题。