fminconの実行時のエラーについて
67 views (last 30 days)
Show older comments
関数fminconのアルゴリズム、SQPを利用して非線形計画問題の最小化を行っているのですが、非線形の等式拘束条件の数が数千個になると、「インデックスが行列の次元を超えています」というエラーが返されて、最小化の計算ができません。
ここで、ふたつ質問があるのですが、
1,このエラーのインデックスとは何のことを指しているのでしょうか?
2,このエラーを回避する方法はありますか?
よろしくお願いします。
0 Comments
Accepted Answer
michio
on 6 Mar 2018
「インデックスが行列の次元を超えています」というエラー自体は、行列が定義された範囲外のインデックス(要素)を参照すると発生します。例えば下記のように 10x1 の配列を定義して、11番目の要素を参照する場合です。
a = zeros(10,1);
a(11)
条件の数でそのエラーが発生することは考えにくいのですが、まずはエラーがどこで発生しているかを確認したいですね。怪しいところにブレークポイントを設定してもよいですが、例えばコマンドウィンドウ上で
dbstop if error
と実行したのちにプログラムを走らせてみてください。そうするとエラーが発生した時点でプログラムがデバッグモードに入りますので、その時の値など直接確認してエラーの詳細を確認してみてください。詳細はこちら:
デバッグが終了したのちは
dbclear all
と実行しておけば、エラーが起きてもデバッグモードには入らなくなります。
0 Comments
More Answers (0)
See Also
Categories
Find more on ソルバーベースの非線形最適化 in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!