繁体   English   中英

MATLAB 中 for 循环期间的条件语句

[英]A conditional statement during a for loop in MATLAB

这是我尝试一个简单的例子(看起来毫无意义),但这个想法比这个简单的代码更大。

在 for 循环期间,如果发生某些事情,我想跳过 for 循环的这一步,然后在最后添加一个额外的步骤。

  1. 我正在尝试创建一个不包括数字 8 的数字列表。

  2. 如果代码创建一个 8,这将意味着 exitflag 等于 1。

  3. 我可以调整这个程序,以便如果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)

理想情况下,我想要一个不包含81000长的数字列表。

如果您想要做的是循环的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM