我正在尝试在 Matlab 的 for 循环中使用 while 循环。while 循环将重复相同的操作,直到满足某些条件。while 循环的结果是 for 循环中的一次迭代。我在正确获取它时遇到了问题。
n=100;
for i=1:n
while b<0.5
x(i)=rand;
b=x(i);
end
end
我不确定我做错了什么。谢谢
我正在尝试在 Matlab 的 for 循环中使用 while 循环。while 循环将重复相同的操作,直到满足某些条件。while 循环的结果是 for 循环中的一次迭代。我在正确获取它时遇到了问题。
n=100;
for i=1:n
while b<0.5
x(i)=rand;
b=x(i);
end
end
我不确定我做错了什么。谢谢
以不同的方式处理问题。rand
如果没有给您想要的价值,则无需再试一次。只需将结果缩放rand
到您想要的范围内。这应该这样做:
x = 0.5 + 0.5*rand(1, 100);
对于您展示的示例,您必须进行初始化b
,否则while
- 语句在第一次调用时无法评估。
在for
-loop 内执行此操作以避免第一次迭代后的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