Azzera filtri
Azzera filtri

fminconの実行時のエラーについて

120 visualizzazioni (ultimi 30 giorni)
narisawa
narisawa il 6 Mar 2018
Risposto: michio il 6 Mar 2018
関数fminconのアルゴリズム、SQPを利用して非線形計画問題の最小化を行っているのですが、非線形の等式拘束条件の数が数千個になると、「インデックスが行列の次元を超えています」というエラーが返されて、最小化の計算ができません。
ここで、ふたつ質問があるのですが、
1,このエラーのインデックスとは何のことを指しているのでしょうか?
2,このエラーを回避する方法はありますか?
よろしくお願いします。

Risposta accettata

michio
michio il 6 Mar 2018
「インデックスが行列の次元を超えています」というエラー自体は、行列が定義された範囲外のインデックス(要素)を参照すると発生します。例えば下記のように 10x1 の配列を定義して、11番目の要素を参照する場合です。
a = zeros(10,1);
a(11)
条件の数でそのエラーが発生することは考えにくいのですが、まずはエラーがどこで発生しているかを確認したいですね。怪しいところにブレークポイントを設定してもよいですが、例えばコマンドウィンドウ上で
dbstop if error
と実行したのちにプログラムを走らせてみてください。そうするとエラーが発生した時点でプログラムがデバッグモードに入りますので、その時の値など直接確認してエラーの詳細を確認してみてください。詳細はこちら:
デバッグが終了したのちは
dbclear all
と実行しておけば、エラーが起きてもデバッグモードには入らなくなります。

Più risposte (0)

Prodotti

Community Treasure Hunt

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

Start Hunting!