エラー:500 の最大の再帰限界値に達しました について
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Shintarou Sugiyama
el 28 de Dic. de 2017
matlabコマンドウィンドウ上に下記のメッセージが出力されました。
500の最大の再帰限界値に達しました。限界値を変更するには、set(0,''RecursionLimit'',N) を使用してください。利用可能なスタック空間を超えると、MATLAB またはコンピューター、あるいはその両方がクラッシュする可能性があります
上記のメッセージ内の MATLAB またはコンピューター、あるいはその両方がクラッシュする可能性がありますとは具体的にどのような症状なのでしょうか。
編集中のファイルが破棄される等なら許容できるのですが、コンピューターが壊れる/使えなくなる事が起こりうるのか心配しています。
0 comentarios
Respuesta aceptada
Jiro Doke
el 28 de Dic. de 2017
Editada: Jiro Doke
el 3 de En. de 2018
これはあくまでも経験上から回答ですが、コンピュータがクラッシュするというのは壊れて使えなくなるというより、フリーズしたり強制終了したり再起動されたりする様な状況をいいます。 スタックオーバーフロー に関連しています。だいたい再起動すれば元に戻る事が多いですが、勿論保証できません。
まずは、そもそも作られたプログラムは500回以上再帰的に実行されるべきものなのかをご確認ください。間違いの可能性もありますので。クラッシュしても回復する可能性はありますが、それを期待したプログラミングはできれば避けた方が良いかもしれません。
どうしても、再帰的に書く必要があるならば
set(0,'RecursionLimit',N)
で上限を変えてみてください。
0 comentarios
Más respuestas (1)
mizuki
el 28 de Dic. de 2017
どのような状況でこれが起こっているのか不明ですが、警告メッセージ通りに理解すると、コンピュータもクラッシュする可能性があると考えられます。
現在の N の設定値は 500 とのことですので、
set(0,''RecursionLimit'',N)
の N の値を 500 よりも大きな値にしてみてはいかがでしょうか。
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!