疎行列の書き込み (Scilab ゲートウェイ)
ゲートウェイで疎行列を書き込む方法.
既存のデータから作成.
呼び出し手順
入力引数プロファイル:
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)
引数
- _pvCtx
Scilab環境ポインタ, api_scilab.h により定義された "pvApiCtx"で指定.
- _iVar
変数を保存するScilabメモリの位置.
- _pstName
"名前指定"関数の場合の変数名.
- _iRows
新規変数の行数.
- _iCols
新規変数の列数.
- _iNbItem
疎行列の非ゼロ要素の要素.
- _piNbItemRow
各行の要素数 (大きさ: _iRows).
- _piColPos
各要素の列方向の位置 (大きさ: _iNbItem).
- _pdblReal
実部データ配列のアドレス (大きさ: _iNbItem).
- _pdblImg
虚部データ配列のアドレス (大きさ: _iNbItem).
この引数は createSparseMatrix および createNamedSparseMatrixには存在しません.
- SciErr
エラー構造体で,エラーメッセージ履歴と最初のエラー番号を格納します.
Scilabメモリに直接書き込む.
呼び出し手順
入力引数プロファイル:
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)
引数
- _pvCtx
Scilab環境ポインタ, api_scilab.h により定義された "pvApiCtx"で指定.
- _iVar
変数を保存するScilabメモリの位置.
- _iRows
新規変数の行数.
- _iCols
新規変数の列数.
- _iNbItem
疎行列の非ゼロ要素の数.
- _piNbItemRow
返される各行の要素数のアドレス (大きさ: _iRows).
- _piColPos
返される各要素の列方向のアドレス (大きさ: _iNbItem).
- _pdblReal
実部データ配列のアドレス (大きさ: _iNbItem).
- _pdblImg
虚部データ配列のアドレス (大きさ: _iNbItem).
この引数は allocSparseMatrixには存在しません.
- SciErr
エラー構造体で,エラーメッセージ履歴と最初のエラー番号を格納します.
説明
このヘルプは疎行列を追加する方法を示します.
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; }
Scilab テストスクリプト
Report an issue | ||
<< 疎行列の読み込み (Scilab ゲートウェイ) | Low level functions | 文字列の読み込み (Scilab ゲートウェイ) >> |