Matlabの再帰関数で実行する反復回数を設定するにはどうすればよいですか? 私はそれが10^3
反復を実行する以下の機能Matlabの再帰関数で実行する反復回数を設定するにはどうすればよいですか?
function t=m(x1,x2)
if x1<0.5
if x2<0.5
t=(0+m(2*x2, 2*x1))/4;
else
t=(1+m(2*x1, 2*x2-1))/4;
end
else
if x2>=0.5
t=(2+m(2*x1-1, 2*x2-1))/4;
else
t=(3+m(1-2*x2, 2-2*x1))/4;
end
end
end
を持っています。
私は
function t=m(x1,x2,iter)
while iter<=10^3
if x1<0.5
if x2<0.5
t=(0+m(2*x2, 2*x1, iter+1))/4;
else
t=(1+m(2*x1, 2*x2-1, iter+1))/4;
end
else
if x2>=0.5
t=(2+m(2*x1-1, 2*x2-1, iter+1))/4;
else
t=(3+m(1-2*x2, 2-2*x1, iter+1))/4;
end
end
end
end
とメイン
x1=0.3;
x2=0.4;
iter=0;
t=m(x1,x2,iter);
で
にしようとしたが、それは私にいくつかのエラーが発生します。どんな助け?
あなたの質問は絶対に意味がありません。これは、繰り返し実行する反復回数を選択できる反復収束プロセスの一部ではありません。あなたが再帰を定義するとき、別の再帰呼び出しなしで結果を計算するいくつかの辺のケースがあるはずです。あなたが解決しようとしている実際の問題は何ですか? –
ありがとうございます。あなたが反復の数= 10^3ストップを打つと、あなたが持っているものを私に与えたときに、エッジケースができないのですか? – user3285148
はい、それはあなたの大文字小文字になりますが、 'if(iter> = 1e3)、t = _some_value_;戻る;終わり。あなたは再帰に加えて 'while'ループを必要とせず、'あなたが持っているもの 'によって何を意味するのか明確ではありません - 'x1'と' x2'の組み合わせでなければなりません。 –