Scilab 5.5.1
- Scilabヘルプ
- API Scilab
- Low level functions
- AssignOutputVariable
- CallOverloadFunction
- CheckInputArgument
- CheckOutputArgument
- ReturnArguments
- 論理値の読み込み (Scilabゲートウェイ)
- 論理値の書き込み (Scilabゲートウェイ)
- 論理値疎行列の読み込み (Scilabゲートウェイ)
- 論理値の疎行列の書き込み (Scilabゲートウェイ)
- 変数の次元を確認 (Scilabゲートウェイ)
- 変数リファレンス (Scilabゲートウェイ)
- 変数の次元 (Scilabゲートウェイ)
- 変数の型 (Scilabゲートウェイ)
- 複素数変数 (Scilabゲートウェイ)
- 行列型 (Scilab ゲートウェイ)
- deleteNamedVariable
- doubleの読み込み (Scilabゲートウェイ)
- doubleの書き込み (Scilabゲートウェイ)
- getNbInputArgument (Scilabゲートウェイ)
- getNbOutputArgument (Scilabゲートウェイ)
- ハンドルの読み込み (Scilab ゲートウェイ)
- ハンドルの書き込み (Scilab ゲートウェイ)
- 整数の精度 (Scilabゲートウェイ)
- 整数の読み込み (Scilab ゲートウェイ)
- 整数の書き込み (Scilabゲートウェイ)
- nbInputArgument (Scilab ゲートウェイ)
- ポインタの読み込み (Scilabゲートウェイ)
- ポインタの書き込み (Scilabゲートウェイ)
- 多項式の記号変数 (Scilabゲートウェイ)
- 多項式の読み込み (Scilabゲートウェイ)
- 多項式の書き込み (Scilabゲートウェイ)
- 疎行列の読み込み (Scilab ゲートウェイ)
- 疎行列の書き込み (Scilab ゲートウェイ)
- 文字列の読み込み (Scilab ゲートウェイ)
- 文字列の書き込み (Scilab ゲートウェイ)
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.
論理値の疎行列の書き込み (Scilabゲートウェイ)
ゲートウェイで論理値の疎行列を追加する方法.
呼び出し手順
入力引数プロファイル:
SciErr createBooleanSparseMatrix(void* _pvCtx, int _iVar, int _iRows, int _iCols, int _iNbItem, const int* _piNbItemRow, const int* _piColPos)
名前指定変数プロファイル:
SciErr createNamedBooleanSparseMatrix(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, int _iNbItem, const int* _piNbItemRow, const int* _piColPos)
引数
- _pvCtx
Scilab環境ポインタ, api_scilab.hで定義される "pvApiCtx" を指定
- _iVar
変数を保存するScilabメモリの位置.
- _pstName
"名前指定" 関数の変数名.
- _iRows
新しい変数の行数.
- _iCols
新しい変数の列数.
- _iNbItem
疎行列における非ゼロ要素の数.
- _piNbItemRow
各行の要素数 (大きさ: _iRows).
- _piColPos
各要素の列方向位置 (大きさ: _iNbItem).
- SciErr
エラー構造体で,エラーメッセージ履歴と最初のエラー番号を保持します.
Scilabメモリに直接書き込みます.
呼び出し手順
入力引数プロファイル:
SciErr allocBooleanSparseMatrix(void* _pvCtx, int _iVar, int _iRows, int _iCols, int _iNbItem, int** _piNbItemRow, int** _piColPos)
引数
- _pvCtx
Scilab環境ポインタ, api_scilab.hで定義される "pvApiCtx" を指定
- _iVar
変数を保存するScilabメモリの位置.
- _iRows
新規変数の行数.
- _iCols
新規変数の列数.
- _iNbItem
疎行列の非ゼロ要素の数.
- _piNbItemRow
各行の要素数 (大きさ: _iRows).
- _piColPos
各要素の列方向位置 (大きさ: _iNbItem).
- SciErr
エラー構造体で,エラーメッセージ履歴と最初のエラー番号を保持します.
説明
このヘルプはリストに論理値疎行列を追加する方法を示します.
ゲートウェイのソース
#include "api_scilab.h" int read_write_bsparse(char *fname,unsigned long fname_len) { SciErr sciErr; int i = 0; int j = 0; int k = 0; // 最初の変数の情報 : doubleの実数行列 int iRows = 0; int iCols = 0; int *piAddr = NULL; int iNbItem = 0; int* piNbItemRow = NULL; int* piColPos = NULL; int iCol = 0; int iNewCol = 0; int iNewItem = 0; int* piNewRow = NULL; int* piNewCol = NULL; // 入力/出力引数を確認 CheckInputArgument(pvApiCtx, 1, 1); CheckOutputArgument(pvApiCtx, 1, 1); // 最初の入力引数の変数アドレスを取得 sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } // Scilabメモリから大きさとデータを取得 sciErr = getBooleanSparseMatrix(pvApiCtx, piAddr, &iRows, &iCols, &iNbItem, &piNbItemRow, &piColPos); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } // データで何か処理を行う // %T -> %F および %F -> %T の変換を行う iNewItem = (iRows * iCols) - iNbItem; piNewRow = (int*)MALLOC(sizeof(int) * iRows); piNewCol = (int*)MALLOC(sizeof(int) * iNewItem); for(i = 0 ; i < iRows ; i++) { piNewRow[i] = iCols - piNbItemRow[i]; for(j = 0 ; j < iCols ; j++) { int iFind = 0; for(k = 0 ; k < piNbItemRow[i] ; k++) { if(piColPos[iCol + k] == (j + 1)) { iFind = 1; break; } } if(iFind == 0) { piNewCol[iNewCol++] = (j + 1); } } iCol += piNbItemRow[i]; } sciErr = createBooleanSparseMatrix(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, iNewItem, piNewRow, piNewCol); 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ゲートウェイ) >> |