Main Content

mxCreateSparse (C および Fortran)

2 次元スパース配列

C 構文

#include "matrix.h"
mxArray *mxCreateSparse(mwSize m, mwSize n, mwSize nzmax, 
         mxComplexity ComplexFlag);

Fortran 構文

#include "fintrf.h"
mwPointer mxCreateSparse(m, n, nzmax, ComplexFlag)
mwSize m, n, nzmax
integer*4 ComplexFlag

引数

m

行数

n

列数

nzmax

配列 pr と配列 ir を、また、ComplexFlag が C で mxCOMPLEX の場合 (Fortran では 1) には配列 pi を格納するために、mxCreateSparse が割り当てる要素の数。nzmax の値は、mxArray に配置する予定の非ゼロ要素の数以上に設定しますが、nzmaxm*n 以下になるようにします。nzmax は 1 以上です。

ComplexFlag

作成する mxArray に虚数データを含める場合、C では ComplexFlagmxCOMPLEX に設定します (Fortran では 1)。それ以外の場合、C では ComplexFlagmxREAL に設定します (Fortan では 0)。

戻り値

作成された mxArray へのポインター。スタンドアロン (非 MEX ファイル) アプリケーションで失敗した場合、C では NULL (Fortran では 0) を返します。MEX ファイルで失敗した場合、MEX ファイルは終了し、制御は MATLAB® プロンプトに戻ります。関数は、mxArray を作成するのに十分な空きヒープ領域がない場合、失敗します。その場合は、nzmaxm または n を少なくしてみてください。

説明

mxCreateSparse を呼び出して、データの与えられていないスパース double の mxArray を作成します。返されるスパース mxArray にはスパース情報は含まれておらず、どの MATLAB スパース関数にも引数として渡すことはできません。返されるスパース mxArray を活用するには、配列 prirjc および (存在する場合は) pi を初期化します。

mxCreateSparse は以下のスペースを割り当てます。

  • 長さが nzmax の配列 pr

  • 長さが nzmax の配列 pi。ただし、ComplexFlag が C で mxCOMPLEX の場合のみ (Fortran では 1)。

  • 長さが nzmax の配列 ir

  • 長さが n+1 の配列 jc

スパース mxArray の使用が終わったら、mxDestroyArray を呼び出してそのヒープ領域をすべて解放します。

matlabroot/extern/examples/refbook の次の例を参照してください。

バージョン履歴

R2006a より前に導入