我正在尝试在Matlab中的for循环中使用while循环。 while循环将重复相同的操作,直到它满足某些标准。 while循环的结果是for循环中的一次迭代。我有一个问题是正确的。
n=100;
for i=1:n
while b<0.5
x(i)=rand;
b=x(i);
end
end
我不确定我做错了什么。 感谢
答案 0 :(得分:4)
以不同方式解决问题。如果rand
没有为您提供所需的价值,则无需再试一次。只需将rand
的结果缩放到您想要的范围内即可。这应该这样做:
x = 0.5 + 0.5*rand(1, 100);
答案 1 :(得分:1)
根据您显示的示例,您必须初始化b
或while
- 语句在首次调用时无法进行评估。
在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