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に配置する予定の非ゼロ要素の数以上に設定しますが、nzmaxはm*n以下になるようにします。nzmaxは 1 以上です。ComplexFlag作成する
mxArrayに虚数データを含める場合、C ではComplexFlagをmxCOMPLEXに設定します (Fortran では1)。それ以外の場合、C ではComplexFlagをmxREALに設定します (Fortan では0)。
戻り値
作成された mxArray へのポインター。スタンドアロン (非 MEX ファイル) アプリケーションで失敗した場合、C では NULL (Fortran では 0) を返します。MEX ファイルで失敗した場合、MEX ファイルは終了し、制御は MATLAB® プロンプトに戻ります。関数は、mxArray を作成するのに十分な空きヒープ領域がない場合、失敗します。その場合は、nzmax、m または n を少なくしてみてください。
説明
mxCreateSparse を呼び出して、データの与えられていないスパース double の mxArray を作成します。返されるスパース mxArray にはスパース情報は含まれておらず、どの MATLAB スパース関数にも引数として渡すことはできません。返されるスパース mxArray を活用するには、配列 pr、ir、jc および (存在する場合は) pi を初期化します。
mxCreateSparse は以下のスペースを割り当てます。
長さが
nzmaxの配列pr。長さが
nzmaxの配列pi。ただし、ComplexFlagが C でmxCOMPLEXの場合のみ (Fortran では1)。長さが
nzmaxの配列ir。長さが
n+1の配列jc。
スパース mxArray の使用が終わったら、mxDestroyArray を呼び出してそのヒープ領域をすべて解放します。
例
例を開くには、次のように入力します。
edit([fullfile(matlabroot,"extern","examples","refbook","filename")]);
ここで filename は、次のようになります。
バージョン履歴
R2006a より前に導入
参考
mxDestroyArray | mxSetNzmax | mxSetIr | mxSetJc | mxComplexity