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