对于循环,在不规则数字集群?

1次观看(过去30天)
郑大世研
郑大世研 2022年10月20日
评论道: Bjorn Gustavsson 2022年10月21日
我不得不做一个循环代码,但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)…?我不知道怎么做;;

接受的答案

Bjorn Gustavsson
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
Bjorn Gustavsson 2022年10月21日
不客气,很高兴能帮到你。
对于matlab的使用,肯定存在某种N%- m %的规则,也许在80%的情况下,现有的matlab函数解决了至少80%的问题——有时只是如何找到它们的问题。

登录评论。

更多答案(1)

史蒂文的主
史蒂文的主 2022年10月20日
V = [1 2 3 4 6 7 8 10 12 13 14 15 16 18 19 20];
K = v
disp (“现在上菜#”+ k)
结束
现上菜#1现上菜#2现上菜#3现上菜#4现上菜#6现上菜#7现上菜#8现上菜#10现上菜#12现上菜#13现上菜#14现上菜#15现上菜#16现上菜#18现上菜#19现上菜#20
1评论
郑大世研
郑大世研 2022年10月20日
谢谢你的第一个回答。但是我不能把所有的数字都输入文本,这些数字可能是几百或几千……
“不可服务”列表中的数字并不是很多。我可以把它们记下来。
我需要用另一种方式来表达。无论如何,谢谢你;)

登录评论。

类别

了解更多循环和条件语句帮助中心文件交换

s manbetx 845


释放

R2022b

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!