这是我对一个简单示例的尝试(看起来毫无意义),但这个想法比这个简单的代码更重要。
在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)
理想情况下,我想要一个数字列表,1000
长度不包含 8
。
最佳答案
如果你想做的是循环的 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
关于matlab - MATLAB 中 for 循环期间的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58627880/