ゲートウェイで疎行列を書き込む方法.
入力引数プロファイル:
SciErr createSparseMatrix(void* _pvCtx, int _iVar, int _iRows, int _iCols, int _iNbItem, const int* _piNbItemRow, const int* _piColPos, const double* _pdblReal)
SciErr createComplexSparseMatrix(void* _pvCtx, int _iVar, int _iRows, int _iCols, int _iNbItem, const int* _piNbItemRow, const int* _piColPos, const double* _pdblReal, const double* _pdblImg)
名前指定変数プロファイル:
SciErr createNamedSparseMatrix(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, int _iNbItem, const int* _piNbItemRow, const int* _piColPos, const double* _pdblReal)
SciErr createNamedComplexSparseMatrix(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, int _iNbItem, const int* _piNbItemRow, const int* _piColPos, const double* _pdblReal, const double* _pdblImg)
Scilab環境ポインタ, api_scilab.h により定義された "pvApiCtx"で指定.
変数を保存するScilabメモリの位置.
"名前指定"関数の場合の変数名.
新規変数の行数.
新規変数の列数.
疎行列の非ゼロ要素の要素.
各行の要素数 (大きさ: _iRows).
各要素の列方向の位置 (大きさ: _iNbItem).
実部データ配列のアドレス (大きさ: _iNbItem).
虚部データ配列のアドレス (大きさ: _iNbItem).
この引数は createSparseMatrix および createNamedSparseMatrixには存在しません.
エラー構造体で,エラーメッセージ履歴と最初のエラー番号を格納します.
入力引数プロファイル:
SciErr allocSparseMatrix(void* _pvCtx, int _iVar, int _iRows, int _iCols, int _iNbItem, int** _piNbItemRow, int** _piColPos, double** _pdblReal)
SciErr allocComplexSparseMatrix(void* _pvCtx, int _iVar, int _iRows, int _iCols, int _iNbItem, int** _piNbItemRow, int** _piColPos, double** _pdblReal, double** _pdblImg)
Scilab環境ポインタ, api_scilab.h により定義された "pvApiCtx"で指定.
変数を保存するScilabメモリの位置.
新規変数の行数.
新規変数の列数.
疎行列の非ゼロ要素の数.
返される各行の要素数のアドレス (大きさ: _iRows).
返される各要素の列方向のアドレス (大きさ: _iNbItem).
実部データ配列のアドレス (大きさ: _iNbItem).
虚部データ配列のアドレス (大きさ: _iNbItem).
この引数は allocSparseMatrixには存在しません.
エラー構造体で,エラーメッセージ履歴と最初のエラー番号を格納します.
このヘルプは疎行列を追加する方法を示します.
Scilabメモリに書き込む際には,2種類の関数を使用可能です.
#include "api_scilab.h" int write_sparse(char *fname,void* pvApiCtx) { SciErr sciErr; int piNbItemRow[] = {1,2,1}; int piColPos[] = {8,4,7,2}; double pdblSReal[] = {1,2,3,4}; double pdblSImg[] = {4,3,2,1}; int iNbItem = 4; sciErr = createComplexSparseMatrix(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 3, 10, iNbItem, piNbItemRow, piColPos, pdblSReal, pdblSImg); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; return 0; }