外部インタフェース/API リファレンス    
mxSetNzmax

非ゼロ要素に対するストレージ領域の設定

C 言語表示

引数
array_ptr
   スパースなmxArrayのポインタ。

nzmax
   ir, pr, (存在すれば)piによって指し示される配列を保持するためにmxCreateSparseが割り当てる要素数。nzmaxは、mxArray内の非ゼロ要素数以上で、行数と列数の積以下の値を設定します。nzmaxの値を0と指定した場合、mxSetNzmaxnzmaxの値を1に設定します。

詳細

mxSetNzmaxを用いて、指定したスパースなmxArraynzmaxフィールドに新たな値を割り当てます。nzmaxフィールドには、スパースなmxArray内の取りうる最大の非ゼロ要素数が保持されます。

ir, pr, (存在すれば)pi配列内の要素数は、nzmax.と等しくなければなりません。そのため、mxSetNzmaxを呼び出した後で、ir, pr, pi配列のサイズを変更しなければなりません。これらの配列のうちの1つのサイズを変更するには、以下のようにします。

  1. mxCallocを呼び出し、nnzmaxの新たな値を設定します。
  2. ANSI C ルーチンmemcpyを呼び出し、古い配列の内容をStep 1で割り当てた新たな領域にコピーします。
  3. mxFreeを呼び出し、古い配列が占有しているメモリを開放します。
  4. 適切なmxSetルーチン(mxSetIr, mxSetPr, mxSetPi)を呼び出して、新たなメモリ領域をカレントのメモリ領域とします。

nzmaxの大きさを決定するためには、2つの方法があります。

例題

examplesディレクトリのmxサブディレクトリのmxsetnzmax.cを参照してください。

参考

mxGetNzmax


 mxSetName mxSetPi