| 外部インタフェース/API リファレンス | ![]() |
C 言語表示
#include "matrix.h" mxArray *mxCreateSparse(int m, int n, int nzmax, mxComplexity ComplexFlag);
n
nzmax
pr, irおよびComplexFlagがmxCOMPLEXならば、pi配列を保持するためにmxCreateSparseが割り当てる要素数。nzmaxの値は、mxArray内に設定しようとする非ゼロ要素の数以上の値に設定しますが、nzmax はm*n以下であるようにしてください。
ComplexFlag
mxREALまたはmxCOMPLEXに設定します。作成しているmxArrayが虚数データを含む場合、ComplexFlagをmxCOMPLEXに設定します。そうでない場合は、ComplexFlagをmxREALに設定します。
戻り値
成功した場合は、作成したスパースなmxArrayのポインタ。失敗した場合は、NULLを出力します。最も考えられる失敗の理由は、フリーなヒープ領域が不十分であることです。このときは、nzmax, m, nを減らしてみてください。
詳細
mxCreateSparseを呼び出すことによって、要素の入っていないスパースなmxArray.を作成します。出力されるスパースなmxArrayには、スパース性の情報は含まれず、MATLABの関数sparseの引数として渡すことはできません。出力されるスパースなmxArrayを有効にするためには、pr, ir, jc, および(存在すれば)pi配列を初期化しなければなりません。
mxCreateSparseは、以下に対して領域を割り当てます。
nzmaxのpr配列nzmaxのpi配列(ComplexFlagがmxCOMPLEXである場合のみ)nzmaxのir配列n+1のjc配列スパースなmxArrayの使用を終了するときは、mxDestroyArrayを呼び出して、すべてのヒープ領域を開放してください。
例題
examplesディレクトリのrefbookサブディレクトリのfulltosparse.cを参照してください。
参考
mxDestroyArray, mxSetNzmax, mxSetPr, mxSetPi, mxSetIr, mxSetJc, mxComplexity
| mxCreateScalarDouble | mxCreateString | ![]() |