Scilab 6.0.0
- Scilabヘルプ
- API Scilab
- legacy
- List manipulation
- isListType, isTListType, isMListType
- 論理値の読み込み (Scilabゲートウェイ)
- 論理値を書き込む (Scilabゲートウェイ)
- 疎論理値の読み込み (Scilabゲートウェイ)
- 疎論理値を書き込む (Scilabゲートウェイ)
- リストを作成する (Scilab ゲートウェイ)
- doubleの読み込み (Scilab ゲートウェイ)
- double書き込み (Scilab ゲートウェイ)
- 子要素を取得 (Scilab ゲートウェイ)
- 要素数 (Scilab ゲートウェイ)
- 整数の読み込み (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 createBooleanSparseMatrixInList(void* _pvCtx, int _iVar, int* _piParent, int _iItemPos, int _iRows, int _iCols, int _iNbItem, const int* _piNbItemRow, const int* _piColPos)
名前指定変数プロファイル:
SciErr createBooleanSparseMatrixInNamedList(void* _pvCtx, const char* _pstName, int* _piParent, int _iItemPos, int _iRows, int _iCols, int _iNbItem, const int* _piNbItemRow, const int* _piColPos)
引数
- _pvCtx
Scilab環境ポインタ, api_scilab.hで提供される"pvApiCtx"を指定.
- _iVar
保存する変数のScilabメモリにおける位置.
- _pstName
"名前指定" 関数の場合の変数名.
- _piParent
新規アイテムの親のアドレス.
- _iItemPos
リストにおける新規アイテムの位置.
- _iRows
新規変数の行数.
- _iCols
新規変数の列数.
- _iNbItem
疎行列における非ゼロアイテムの数.
- _piNbItemRow
各行におけるアイテムの数 (大きさ: _iRows).
- _piColPos
各アイテムの列の位置 (大きさ: _iNbItem).
- SciErr
エラーメッセージの履歴と最初のエラー番号を保存するエラー構造体.
説明
このヘルプはリストにdouble疎行列を追加する手順を示します.
ゲートウェイのソース
#include "api_scilab.h" int list_createlist(char *fname,void* pvApiCtx) { SciErr sciErr; int *piAddr = NULL; int* piChild = NULL; double pdblData1[] = {1,3,5,2,4,6}; double pdblData2[] = {6,4,2,5,3,1}; char *pstData[] = {"may","be","the","with","puffin","you"}; short psData[] = {1,4,2,5,3,6}; double pdblPoly1[] = {1}; double pdblPoly2[] = {-2,-1}; double pdblPoly3[] = {1,2,3}; double pdblPoly4[] = {-4,-3,-2,-1}; double pdblPoly5[] = {1,2,3,4,5}; double pdblPoly6[] = {-6,-5,-4,-3,-2,-1}; double *pdblPoly[] = {pdblPoly1, pdblPoly3, pdblPoly5, pdblPoly2, pdblPoly4, pdblPoly6}; int piCoef[] = {1,3,5,2,4,6}; int piNbItemRow[] = {1,2,1}; int piColPos[] = {8,4,7,2}; double pdblSReal[] = {1,2,3,4}; double pdblSImg[] = {4,3,2,1}; int piBool[] = {1,0,1,0,1,0,1,0,1}; double* pdblDataPtr = NULL; sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 8, &piAddr); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = createComplexMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piAddr, 1, 3, 2, pdblData1, pdblData2); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = createMatrixOfStringInList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piAddr, 2, 2, 3, pstData); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = createMatrixOfInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piAddr, 3, 2, 3, psData); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = createMatrixOfPolyInList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piAddr, 4, "x", 3, 2, piCoef, pdblPoly); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = createComplexSparseMatrixInList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piAddr, 5, 3, 10, 4, piNbItemRow, piColPos, pdblSReal, pdblSImg); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = createMatrixOfBooleanInList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piAddr, 6, 3, 3, piBool); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = createBooleanSparseMatrixInList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piAddr, 7, 3, 10, 4, piNbItemRow, piColPos); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } //add list in list sciErr = createListInList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piAddr, 8, 3, &piChild); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piChild, 1, 3, 2, pdblData1); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } sciErr = createSparseMatrixInList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piChild, 2, 3, 10, 4, piNbItemRow, piColPos, pdblSReal); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } pdblDataPtr = (double*)malloc(sizeof(double) * 4); pdblDataPtr[0] = 1; pdblDataPtr[1] = 2; pdblDataPtr[2] = 3; pdblDataPtr[3] = 4; sciErr = createPointerInList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, piChild, 3, pdblDataPtr); if(sciErr.iErr) { printError(&sciErr, 0); return 0; } AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; return 0; }
Scilabテストスクリプト
size_ref = 8; type_ref = ["constant","string","int16","polynomial", "sparse", "boolean", "boolean sparse", "list"]; dim_ref = list([3,2],[2,3],[2,3],[3,2],[3,10],[3,3],[3,10],3); l = list_createlist(); if size(l) <> size_ref then error("failed"), end for i = 1 : size_ref if typeof(l(i)) <> type_ref(i) then error("failed"), end if size(l(i)) <> dim_ref(i) then error("failed"), end end
Report an issue | ||
<< 疎論理値の読み込み (Scilabゲートウェイ) | List manipulation | リストを作成する (Scilab ゲートウェイ) >> |