エラー:500 の最大の再帰限界値に達しました について

조회 수: 22 (최근 30일)
Shintarou Sugiyama
Shintarou Sugiyama 2017년 12월 28일
편집: Jiro Doke 2018년 1월 3일
matlabコマンドウィンドウ上に下記のメッセージが出力されました。
500の最大の再帰限界値に達しました。限界値を変更するには、set(0,''RecursionLimit'',N) を使用してください。利用可能なスタック空間を超えると、MATLAB またはコンピューター、あるいはその両方がクラッシュする可能性があります
上記のメッセージ内の MATLAB またはコンピューター、あるいはその両方がクラッシュする可能性がありますとは具体的にどのような症状なのでしょうか。
編集中のファイルが破棄される等なら許容できるのですが、コンピューターが壊れる/使えなくなる事が起こりうるのか心配しています。

채택된 답변

Jiro Doke
Jiro Doke 2017년 12월 28일
편집: Jiro Doke 2018년 1월 3일
これはあくまでも経験上から回答ですが、コンピュータがクラッシュするというのは壊れて使えなくなるというより、フリーズしたり強制終了したり再起動されたりする様な状況をいいます。 スタックオーバーフロー に関連しています。だいたい再起動すれば元に戻る事が多いですが、勿論保証できません。
まずは、そもそも作られたプログラムは500回以上再帰的に実行されるべきものなのかをご確認ください。間違いの可能性もありますので。クラッシュしても回復する可能性はありますが、それを期待したプログラミングはできれば避けた方が良いかもしれません。
どうしても、再帰的に書く必要があるならば
set(0,'RecursionLimit',N)
で上限を変えてみてください。

추가 답변 (1개)

mizuki
mizuki 2017년 12월 28일
どのような状況でこれが起こっているのか不明ですが、警告メッセージ通りに理解すると、コンピュータもクラッシュする可能性があると考えられます。
現在の N の設定値は 500 とのことですので、
set(0,''RecursionLimit'',N)
の N の値を 500 よりも大きな値にしてみてはいかがでしょうか。

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!