行列引数
Optimization Toolbox™ ソルバーは、初期点 x0、下限 lb、上限 ub など、多くの引数のベクトルを受け入れます。また、これらの引数の行列も受け入れます。ここで、行列は任意のサイズの配列を意味します。ソルバーの引数がベクトルではなくもともと配列である場合、引数を配列として指定できます。
ソルバーでは行列引数は以下のように扱われます。
処理を始める前に、行列引数はソルバーによって内部的にベクトルに変換されます。たとえば、
x0はx0(:)になります。この構文の説明は、colonのA(:)エントリ、または配列インデックス付けの「単一のインデックスによるインデックス付け」のセクションを参照してください。出力では、ソルバーが解
xを入力x0と同じサイズに再形成します。x0が行列の場合、ソルバーはxをx0と同じサイズの行列として目的関数と任意の非線形制約関数の両方に渡します。ただし、線形制約では
xをベクトル形式x(:)で受け取ります。つまり、次の形式の線形制約A*x ≤ bまたはAeq*x = beqは、
xを行列ではなくベクトルとして受け入れます。行列AまたはAeqの列数がx0の要素数と同じであることを確認してください。同じでない場合は、ソルバーでエラーが発生します。