[英]A conditional statement during a for loop in MATLAB
这是我尝试一个简单的例子(看起来毫无意义),但这个想法比这个简单的代码更大。
在 for 循环期间,如果发生某些事情,我想跳过 for 循环的这一步,然后在最后添加一个额外的步骤。
我正在尝试创建一个不包括数字 8 的数字列表。
如果代码创建一个 8,这将意味着 exitflag 等于 1。
我可以调整这个程序,以便如果exitflag=1
,它将删除该结果并添加另一个循环。
编码:
for i = 1:1000
j = 1+round(rand*10)
if j == 8
exitflag = 1
else
exitflag = 0
end
storeexit(i)=exitflag;
storej(i)=j;
end
sum(storeexit)
理想情况下,我想要一个不包含8
的1000
长的数字列表。
如果您想要做的是循环的 1000 次迭代,但是如果您不喜欢它的结果则重复循环迭代,而不是在最后标记重复,您可以做的是在for
循环内循环直到您喜欢该迭代的结果:
stores = zeros(1000,1); % Note that it is important to preallocate arrays, even in toy examples :)
for i = 1:1000
success = false; % MATLAB has no do..while loop, this is slightly more awkward....
while ~success
j = 1+round(rand*10);
success = j ~= 8;
end
storej(i) = j; % j guaranteed to not be 8
end
不。
使用 for 循环,循环数是在循环开始时确定的,它不是动态的。
为了做你想做的事,你需要使用一个while循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.