而循环内部for循环在Matlab中

时间:2013-09-10 21:53:38

标签: matlab for-loop while-loop

我正在尝试在Matlab中的for循环中使用while循环。 while循环将重复相同的操作,直到它满足某些标准。 while循环的结果是for循环中的一次迭代。我有一个问题是正确的。

n=100;
for i=1:n
    while b<0.5
        x(i)=rand;
        b=x(i);
    end
end

我不确定我做错了什么。 感谢

2 个答案:

答案 0 :(得分:4)

以不同方式解决问题。如果rand没有为您提供所需的价值,则无需再试一次。只需将rand的结果缩放到您想要的范围内即可。这应该这样做:

x = 0.5 + 0.5*rand(1, 100);

答案 1 :(得分:1)

根据您显示的示例,您必须初始化bwhile - 语句在首次调用时无法进行评估。
for循环中执行此操作以避免在第一次for - 迭代后出现误报:

n=100;
for ii=1:n
    b = 0;
    while b<0.5
        x(ii)=rand;
        b=x(ii);
    end
end

或者,没有b

n=100;
x = zeros(1,100);
for ii=1:n
    while x(ii)<0.5
        x(ii)=rand;
    end
end