Matlab の for ループ内で while ループを使用しようとしています。while ループは、いくつかの条件を満たすまで同じアクションを繰り返します。while ループの結果は、for ループの 1 回の反復です。それを正しく取得するのに問題があります。
n=100;
for i=1:n
while b<0.5
x(i)=rand;
b=x(i);
end
end
何が間違っているのかわかりません。ありがとう
Matlab の for ループ内で while ループを使用しようとしています。while ループは、いくつかの条件を満たすまで同じアクションを繰り返します。while ループの結果は、for ループの 1 回の反復です。それを正しく取得するのに問題があります。
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
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