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

标签 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)

理想情况下,我想要一个数字列表,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/

相关文章:

performance - 快速 r-连续匹配(基于位置相似性)

arrays - 在 MATLAB 中从 Nx1 向量创建所有可能的 Mx1 向量

matlab - 在输出向量的匿名函数中创建可变数量的项

matlab - 如何在给定每日 fts 的情况下提取月度金融时间序列

matlab - 并发 for 循环 2 个变量

excel - 为什么完整的 Matlab 数组 (X) 在 'if X' 中返回 false?

Matlab - 如何检测图像上的绿色?

matlab - 根据非零行数对矩阵进行排序

matlab - 从 MATLAB 中的徒手绘图中捕获数组中的点

matlab - '坚持'不适用于matlab中的多位置子图