scilab モジュール

scilab モジュールでは、Scilabアプリケーションを呼び出し、操作とそれを補助するためのクラスをそろえています。
scilab モジュールにあるクラスを呼び出すには、require関数を使います。 例えば
    var {Scilab} = require("scilab");

    #.sci{
    %%out A
    A = [1+2*%i 3+4*%i; 5, 6];
    disp(A);
    }#

    print(Scilab.result());
以下の説明で Scilab, SciVar が現れたら、
  var {Scilab} = require("scilab");
  var {SciVar} = require("scilab");
  または
  var {Scilab, SciVar} = require("scilab");
でセットされた クラスであることに留意してください。

Scilab オブジェクト ...

  数値計算ソフト「Scilab」を操作するためのオブジェクトです。

Scilabと「sci」領域
  JavaScriptからScilabを簡単に操作するために、「sci」領域を組み込んでいる。(DSL\sci.jsに実装)

例:
  var A = [1,2,3];
  var scalar = 5;

  #.sci{
  %%inp A, scalar
  %%out OUT
  OUT = scalar * A;
  }#
  
  print(OUT);      //     5.    10.    15.
  print(OUT(1,1).$); //  5
  print(OUT(1,2).$); // 10
  print(OUT(1,3).$); // 15

  #.sci{ ... }# で囲まれた「sci」領域に、Scilabで実行されるコードが書かれます。
  この「sci」領域は以下の手順で実行されます。

  (1) Scilabオブジェクトがなければ、内部で require('scilab')を実行してScilabをロードする。

  (2) 先頭の%%inpに宣言してある JavaScript変数をScilab変数へ変換する。
    この変換は各変数について
      Scilab.setVar("変数",変数);
    を実行する。

  (3) %%宣言の後のコードをScilabで実行する。

  (4) 先頭の%%outに宣言してある Scilab変数をJavaScript変数へ変換する。
    この変換は各変数について
      変数 = Scilab.getVar("変数");
    を実行する。
 

Scilab : プロパティ・関数・・・リスト
clearVar関数 Scilabの変数を消去
createMatrix関数 行列作成
createSparse関数 行列を作成
doEvent関数 Scilabへイベント処理を依頼
eval関数 Scilabプログラムコードを実行
existVar関数 変数の存在判定
getVar関数 Scilab変数を扱えるオブジェクトを取得
haveAGraph関数 グラフィック表示しているかどうかの判定
result関数 Scilab実行出力文字を取得
run関数 Scilabプログラムファイルを実行
setVar関数 Scilab変数へ値をセット
constants定数 定数

clearVar 関数 Scilab...

Scilabの変数を消去

Scilab.clearVar( var )

引数
var : String or Scilab.SciVar
Scilabの変数 または SciVarオブジェクト。複数を渡すことも可能。
var {Scilab} = require("scilab");

#.sci{
A = [1,2,3];
disp(A);
}#
print(Scilab.result());
/*
 
    1.    2.    3.  
*/

Scilab.clearVar("A");
#.sci{
disp(A);
}#
print(Scilab.result());
/*
 
 !--error 4   
 
 Undefined variable: A   
*/

createMatrix 関数 Scilab...

行列作成

Scilab.createMatrix( vname, mx ) : Scilab.SciVar
Scilab.createMatrix( vname, [x1,x2, ...,xn] ) : Scilab.SciVar
Scilab.createMatrix( vname, [x11,x12, ..., x1n], ..., [xm1,xm2, ..., xmn] ) : Scilab.SciVar
Scilab.createMatrix( vname, M ) : Scilab.SciVar
Scilab.createMatrix( vname, M, N ) : Scilab.SciVar
Scilab.createMatrix( vname, M, N, type ) : Scilab.SciVar

引数
vname : String
Scilabでの変数名。
mx : Matrix or Scilab.SciVar
行列オブジェクトまたはScilab.SciVarオブジェクト。
[x1,x2, ...,xn] : (Number or Complex or Boolean or String)の配列
[x11,x12, ..., x1n], ..., [xm1,xm2, ..., xmn] : (Number or Complex or Boolean or String)の配列のリスト
行列の行成分。(原則として各要素の型はすべて同じであること)
M : Integer
行列の行数。
N : Integer
行列の列数。
type : Integer
作成したい行列の型を指定します。

Scilab.MATRIX or 0 なら実数型の行列(デフォルト)
Scilab.COMPLEX なら複素数型の行列
Scilab.STRING なら文字列型の行列
Scilab.BOOLEAN なら論理型の行列
Scilab.INTS なら整数型の行列
返値
作成された行列を操れるオブジェクトを返します。作成に失敗したらnullを返します。
参照
createSparse関数, constants 定数
var {Scilab} = require("scilab");

// var A = Scilab.createMatrix("A",[Math.cos(th),-Math.sin(th)], [-Math.sin(th),Math.cos(th)]);
var A = Scilab.createMatrix("A",2,2);
var th = Math.PI/3;
A(1,1).$ = Math.cos(th); A(1,2).$ = -Math.sin(th);
A(2,1).$ = A(1,2).$;     A(2,2).$ = A(1,1).$;

#.sci{
disp(A);
}#

print(Scilab.result());
/* 
    0.5        - 0.8660254  
  - 0.8660254    0.5        
*/

// var B = Scilab.createMatrix("B",[1,[1,1]], [[1,-1],1]);
var B = Scilab.createMatrix("B",2,2, Scilab.COMPLEX);
B(1,1).$ = 1;      B(1,2).$ = [1,1];
B(2,1).$ = [1,-1]; B(2,2).$ = 1;

print(B);
/*
    1.          1. + i    
    1. - i      1.        
*/

createSparse 関数 Scilab...

行列を作成

Scilab.createSparse( vname, mx ) : Scilab.SciVar
Scilab.createSparse( vname, [[i1,j1,x1],[i2,j2,x2],...,[in,jn,xn]], [M,N] ) : Scilab.SciVar
Scilab.createSparse( vname, M, N ) : Scilab.SciVar
Scilab.createSparse( vname, M, N, nzmax ) : Scilab.SciVar
Scilab.createSparse( vname, M, N, nzmax, type ) : Scilab.SciVar

引数
vname : String
Scilabでの変数名。
mx : Matrix or Scilab.SciVar
行列オブジェクトまたはScilab.SciVarオブジェクト。
[[i1,j1,x1],[i2,j2,x2],...,[in,jn,xn]] : Array of [Integer,Integer,(Number/Complex/Boolean)]
非零要素の行列要素位置とその値。
M : Integer
行列の行数を指定します。
N : Integer
行列の列数を指定します。
nzmax : Integer
非ゼロ要素の最大数を設定します。1≦nzmax≦(M*N)
type : Integer
作成したい行列の型を指定します。

Scilab.SPARSE or 0 なら実数型の疎行列(デフォルト)
Scilab.COMPLEX なら複素数型の疎行列
Scilab.BOOLEAN_SPARSE なら論理型の疎行列
返値
作成された疎行列を操れるオブジェクトを返します。作成に失敗したらnullを返します。
参照
createMatrix関数, constants 定数
var {Scilab} = require("scilab");

var A = Scilab.createSparse("A",50,50);
for (var c=1; c<=50; c++) {
  if (c>1) A(c-1,c).$ = c-1;
  A(c,c).$ = c;
  if (c<50) A(c+1,c).$ = c+1;
}
/*
var elms = [];
for (var c=1; c<=50; c++) {
  if (c>1) elms.push([c-1,c, c-1]);
  elms.push([c,c, c]);
  if (c<50) elms.push([c+1,c, c+1]);
}
var A = Scilab.createSparse("A",elms,[50,50]);
*/
print(A);
/*
   (1,1)        1
   (2,1)        2
   (1,2)        1
   (2,2)        2
   (3,2)        3
          ・
          ・
  (49,49)      49
  (50,49)      50
  (49,50)      49
  (50,50)      50
*/

doEvent 関数 Scilab...

Scilabへイベント処理を依頼

Scilab.doEvent()

解説
Scilabコマンドplot2d(),plot3d()でグラフィック表示をしたとき、表示の拡大・回転・移動などのイベント処理をScilabへ依頼します。
参照
haveAGraph関数

eval 関数 Scilab...

Scilabプログラムコードを実行

Scilab.eval( progcode ) : String

引数
progcode : String
Scilabが実行できるプログラムコードを与えます。
返値
Scilabが実行して、吐き出された文字列を返します。
参照
run関数, result関数
var {Scilab} = require("scilab");

var A = [1,2,3];
var scalar = 5;

Scilab.setVar("A",A);
Scilab.setVar("scalar",scalar);

var ret = Scilab.eval("OUT=scalar * A; disp(OUT);");
print(ret);
/*
    5.    10.    15.  
*/

existVar 関数 Scilab...

変数の存在判定

Scilab.existVar(varname) : Boolean

引数
varname : String
変数名。
返値
変数があればtrueを返します。なければfalseを返します。
参照
getVar関数

getVar 関数 Scilab...

Scilab変数を扱えるオブジェクトを取得

Scilab.getVar( varname ) : Scilab.SciVar

引数
varname : String
変数名。
返値
変数の行列オブジェクトを返します。
参照
setVar関数, existVar関数
var {Scilab} = require("scilab");

#.sci{
A = [1,2,3];
}#

print(Scilab.existVar("A"));	// true
print(Scilab.existVar("B"));	// false

var A = Scilab.getVar("A");
print(A);	//     1.     2.     3.
print(A(1).$);	// 1
print(A(2).$);	// 2
print(A(3).$);	// 3

haveAGraph 関数 Scilab...

グラフィック表示しているかどうかの判定

Scilab.haveAGraph() : Boolean

返値
グラフィック表示していれあば,trueを返す。そうでなければ,falseを返します。
解説
Scilabコマンドplot2d(),plot3d()などででグラフィック表示しているかどうかの判定にこの関数を使用し、表示の拡大・回転・移動などのイベント処理はdoEvent関数に処理を依頼します。
参照
doEvent関数
var {Scilab} = require("scilab");

#.sci{
plot2d();
}#

while( Scilab.haveAGraph() ) {
 Scilab.doEvent();
}

result 関数 Scilab...

Scilab実行出力文字を取得

Scilab.result() : String

返値
run,eval関数の実行出力文字列を返します。エラーが起きれば、そのエラー内容が取得できます。
var {Scilab} = require("scilab");

var A = [1,2,3];
var scalar = 5;

Scilab.setVar("A",A);
Scilab.setVar("scalar",scalar);

Scilab.eval("OUT=scalar * A; disp(OUT)");

print(Scilab.result());
/*
OUT =

     5.    10.    15.
*/

run 関数 Scilab...

Scilabプログラムファイルを実行

Scilab.run( progfile ) : String

引数
progfile : String
Scilabプログラムファイル名。
返値
指定したプログラムファイルを実行して、吐き出された文字列を返します。
参照
eval関数, result関数
[test.sci]
OUT = scalar * A;

[JavaScript]
var {Scilab} = require("scilab");

Scilab.setVar("A",[1,2,3]);
Scilab.setVar("scalar",5);

Scilab.run("test.sci");

var OUT = Scilab.getVar("OUT");
print(OUT); //     5.    10.    15.

setVar 関数 Scilab...

Scilab変数へ値をセット

Scilab.setVar( vname, value ) : Boolean

引数
vname : String
Scilab変数名。
value
セットする値。
value : Number or String or Boolean型なら、その値がセットされる。
value : Scilab.SciVar型 なら、valueにセットされてるScilabの値がセットされる。
value : [x1,x2,...,xN] 各xi:Number なら、1xN 実数行列がセットされる。
value : [x11,x12,...,x1N], [x21,x22,...,x2N], ..., [xM1,xM2,...,xMN]
     各xij:Number (or Boolean) なら、MxN 実数行列(論理型行列)がセットされる。
value : [[x11,y11],[x12,y12],...,[x1N,y1N]], [[x21,y21],[x22,y22],...,[x2N,y2N]], ..., [[xM1,yM1],[xM2,yM2],...,[xMN,yMN]]
     各xij,yij:Number なら、MxN  複素行列がセットされる。
   
返値
Scilab変数へ値がセットできたらtrueを返します。失敗したらfalseを返します。
参照
getVar関数, eval関数, run関数
var {Scilab} = require("scilab");

Scilab.setVar("A",1.23);
Scilab.setVar("B","string");
Scilab.setVar("C",[1,2,3]);
Scilab.setVar("D",[1,2],[3,4]);
Scilab.setVar("E",[[1,2],[2,3]],[[3,4],[4,5]]);

#.sci{
disp("A="); disp(A)
disp("B="); disp(B)
disp("C="); disp(C)
disp("D="); disp(D)
disp("E="); disp(E)
}#

print(Scilab.result());
/*
 A=   
 
    1.23  
 
 B=   
 
 string   
 
 C=   
 
    1.    2.    3.  
 
 D=   
 
    1.    2.  
    3.    4.  
 
 E=   
 
    1. + 2.i    2. + 3.i  
    3. + 4.i    4. + 5.i  
*/

constants 定数 Scilab...

定数

Scilab.COMPLEX : 複素数型 修飾子

Scilab.MATRIX : 実数型行列
Scilab.BOOLEAN : 論理型行列
Scilab.SPARSE : 実数型疎行列
Scilab.BOOLEAN_SPARSE : 論理型疎行列
Scilab.INTS : 整数型行列
Scilab.STRINGS : 文字列型行列

Scilab.INT8 : 1バイト整数
Scilab.INT16 : 2バイト整数
Scilab.INT32 : 4バイト整数
Scilab.UINT8 : 1バイト符号なし整数
Scilab.UINT16 : 2バイト符号なし整数
Scilab.UINT32 : 4バイト符号なし整数

解説
createMatrix(M,N,type),createSparse(M,N,nzmax,type)で作成したい行列の型(type)を指定するときに使用します。
参照
createMatrix, createSparse
var {Scilab} = require("scilab");

// 3 x 3 型論理型行列作成
var A = Scilab.createMatrix(3,3, Scilab.BOOLEAN);
A(1,3).$ = true;
A(3,1).$ = true;

print(A);
/*
  F F T  
  F F F  
  T F F  
*/

// 3 x 3 型複素数型行列作成
var B = Scilab.createMatrix(3,3, Scilab.COMPLEX); //Scilab.createMatrix(3,3, Scilab.MATRIX | Scilab.COMPLEX);
B(1,3).$ = [1,2];
B(3,1).$ = [3,4];

print(B);
/*
    0           0    1. + 2.i  
    0           0    0         
    3. + 4.i    0    0         
*/

SciVar クラス ...

Scilabの変数を扱うクラスです。
変数の値は実数値や文字列そして論理型(T,F)を成分としたScilabの行列です。また、基本型である実数値や文字列、そして複素数値は 1x1型の行列として扱っています。

SciVar : プロパティ・関数・・・リスト
().$ 値の設定と取得
get関数 値を取り出す
getIntPrecision関数 整数のタイプを取得
getType関数 型情報を取得
isComplex関数 複素数タイプかどうかの判定
isDouble関数 倍精度タイプかどうかの判定
isEmpty関数 空かどうかの判定
isIntX関数 整数タイプかどうかの判定
isLogical, isBoolean関数 論理値タイプかどうかの判定
isNumeric関数 数値タイプかどうかの判定
isSparse関数 疎行列かどうかの判定
isString関数 文字列かどうかの判定
isUintX関数 符号なし整数タイプかどうかの判定
set関数 値の設定
sizes関数 行列サイズを取得
toMatrix関数 Scilab行列をOgO行列へ変換
toString関数 文字列化

().$ SciVar...

値の設定と取得

[設定]
scivar().$ = value
scivar( i ).$ = value
scivar( i, j ).$ = value

[取得]
v = scivar().$
v = scivar( i ).$
v = scivar( i, j ).$

引数
i, j : Integer
引数なしの場合、i=j=1と同じ。
(i,j) の場合、i行j列の要素を指示しています。
(i) の場合、行列の要素を(1,1),(2,1),...,(M,1),(M,2),....とカウントしてi番目の要素を指示しています。ただし、Mは行サイズ。
解説
[設定]
scivar().$=value : scivar.set(value)
scivar(i).$=value : scivar.set(i,value)
scivar(i,j).$=value : scivar.set(i,j,value)
と同じになります。
[取得]
v = scivar().$ : v = scivar.get()
v = scivar(i).$ : v = scivar.get(i)
v = scivar(i,j).$ : v = scivar.get(i,j)
と同じになります。
参照
get, set
var {Scilab} = require("scilab");

// var A = [[1,2],[2,3],[3,4]];
var A = Scilab.createMatrix(3,2);
A(1,1).$ = 1; A(1,2).$ = 2;
A(2,1).$ = 2; A(2,2).$ = 3;
A(3,1).$ = 3; A(3,2).$ = 4;

#.sci{
%%inp A
%%out B

B = A - 1;
}#

print(B);
/*
     0     1
     1     2
     2     3
*/
print(B(1,1).$, B(1,2).$); // 0 1
print(B(2,1).$, B(2,2).$); // 1 2
print(B(3,1).$, B(3,2).$); // 2 3

get 関数 SciVar...

値を取り出す

scivar.get() : Value
scivar.get(i) : Value
scivar.get(i, j) : Value

引数
i, j : Integer
引数なしの場合、i=j=1と同じ。
(i,j) の場合、i行j列の要素を指示しています。
(i) の場合、行列の要素を(1,1),(2,1),...,(M,1),(M,2),....とカウントしてi番目の要素を指示しています。ただし、Mは行サイズ。
返値
scivarが数値型行列なら、指定位置の数値(Number型)を返します。
scivarが複素数型行列なら、指定位置の複素数(Complexオブジェクト)を返します。
scivarが論理型行列なら、指定位置の論理値(true, false) を返します。
scivarが文字列型行列なら、指定位置の文字列(String型)を返します。
参照
().$, set
#.sci{
%%out A,B,C,D
A = 1.23;
B = 'string';
C = [1,2,3; 4,5,6];
D = [1+2*%i,3+4*%i];
}#

//print(A().$);
print(A.get()); // 1.23

//print(B().$);
print(B.get()); // string

//print(C(1,1).$,C(1,2).$,C(1,3).$,'\n',
//        C(2,1).$,C(2,2).$,C(2,3).$);
print(C.get(1,1),C.get(1,2),C.get(1,3),'\n',
        C.get(2,1),C.get(2,2),C.get(2,3));
/*
1 2 3
 4 5 6
*/

//print(D(1,1).$,D(1,2).$);
print(D.get(1,1), D.get(1,2));	// 1 + 2 i   3 + 4 i

getIntPrecision 関数 SciVar...

整数のタイプを取得

scivar.getIntPrecision() : Integer

返値
scivarが整数型行列であるとき 整数のタイプを返します。(Scilab.INTx,Scilab.UINTx x=8,16,32)
整数型行列でないときは 0を返します。
#.sci{
%%out A
A = int32([1 2; 3 4]);
}#

print(A.getIntPrecision());	// 4==Scilab.INT32

getType 関数 SciVar...

型情報を取得

scivar.getType() : Integer

返値
scivarの型情報を返します。(Scilab.MATRIX~Scilab.STRINGS)
var {Scilab} = require("scilab");

#.sci{
%%out A, B, C, D
A = [1 2; 3 4];
B = [%T %T; %F %F];
C = ['ABCDE'; '1234'];
D = int32(A);
}#

print(A.getType()==Scilab.MATRIX);	// true
print(B.getType()==Scilab.BOOLEAN);	// true
print(C.getType()==Scilab.STRINGS);	// true
print(D.getType()==Scilab.INTS);	// true

isComplex 関数 SciVar...

複素数タイプかどうかの判定

scivar.isComplex() : Boolean

返値
scivar.getType()==Scilab.MATRIX or Scilab.SPARSEであって、その要素が複素数である場合 trueを返します。そうでなければ falseを返します。
#.sci{
%%out A, B
A = [1 2; 3 4];
B = [1+2*%i 3+4*%i; 5, 6];
}#

print(A.isComplex());	// false
print(B.isComplex());	// true

isDouble 関数 SciVar...

倍精度タイプかどうかの判定

scivar.isDouble() : Boolean

返値
scivar.getType()==Scilab.MATRIX or Scilab.SPARSEであれば true, そうでなければ falseを返します。
#.sci{
%%out A, B, C
A = [1 2; 3 4];
B = [1+2*%i 3+4*%i; 5, 6];
C = int32(A);
}#

print(A.isDouble());	// true
print(B.isDouble());	// false
print(C.isDouble());	// false

isEmpty 関数 SciVar...

空かどうかの判定

scivar.isEmpty() : Boolean

返値
scivarが サイズ0x0の行列ならtrueを返し, そうでなければfalseを返します。
#.sci{
%%out A, B, C
A = [1 2; 3 4];
B = [];
}#

print(A.isEmpty());	// false
print(B.isEmpty());	// true

isIntX 関数 (X=8,16,32) SciVar...

整数タイプかどうかの判定

scivar.isInt() : Boolean
scivar.isInt8() : Boolean
scivar.isInt16() : Boolean
scivar.isInt32() : Boolean

返値
scivarが X(=8,16,32)ビット符号つき整数行列ならtrueを返し, そうでなければfalseを返します。
isInt関数では、scivar.isInt8() || scivar.isInt16() || scivar.isInt32() の結果を返します。
#.sci{
%%out A, B
A = [1 2.4; 3 4];
B = int32(A);
}#

print(A.isInt32());	// false
print(B.isInt32());	// true

print(A);
/*
    1.    2.4  
    3.    4.   
*/
print(B);
/*
  1  2  
  3  4  
*/

isLogical, isBoolean 関数 SciVar...

論理値タイプかどうかの判定

scivar.isLogical() : Boolean
scivar.isBoolean() : Boolean

返値
scivar.getType()==Scilab.BOOLEAN or ==Scilab.BOOLEAN_SPARSEであるときtrue, そうでなければfalseを返します。
#.sci{
%%out A, B
A = [1 2; 3 4];
B = A>2;
}#

print(A.isLogical());	// false
print(B.isLogical());	// true

isNumeric 関数 SciVar...

数値タイプかどうかの判定

scivar.isNumeric() : Boolean

返値
scivar.getType()==Scilab.MATRIX or SPARSE or INTSなら true, そうでなければfalseを返します。
参照
isLogical関数, isString関数
#.sci{
%%out A, B, C, D, E, F
A = [1 2.4; 3 4];
B = [1+2*%i 3+4*%i; 5, 6];
C = int32(A);
D = 'string';
E = [%T,%F];
}#

print(A.isNumeric());	// true
print(B.isNumeric());	// true
print(C.isNumeric());	// true
print(D.isNumeric());	// false
print(E.isNumeric());	// false

isSparse 関数 SciVar...

疎行列かどうかの判定

scivar.isSparse() : Boolean

返値
scivar.getType()==Scilab.SPARSE or BOOLEAN_SPARSEならtrueを返し, そうでなければfalseを返します。
参照
createSparse 関数
#.sci{
%%out A, B
A = [1,2];

B = sparse([[1,1];[1,2];[2,1];[2,2];[2,3];[3,2];[3,3];[3,4]],[1,2,1,2,3,2,3,4], [150,150]);
}#

print(A.isSparse()); // false
print(B.isSparse()); // true

isString 関数 SciVar...

文字列かどうかの判定

scivar.isString() : Boolean

返値
scivar.getType()==Scilab.STRINGS ならtrueを返し, そうでなければfalseを返します。
参照
isNumeric関数, isLogical関数
#.sci{
%%out A, B
A = 'string';
B = [1, 2];
}#

print(A.isString());	// true
print(B.isString());	// false

isUintX 関数 (X=8,16,32) SciVar...

符号なし整数タイプかどうかの判定

scivar.isUint() : Boolean
scivar.isUint8() : Boolean
scivar.isUint16() : Boolean
scivar.isUint32() : Boolean

返値
scivarが X(=8,16,32)ビット符号なし整数行列ならtrueを返し, そうでなければfalseを返します。
isUint関数では、scivar.isUint8() || scivar.isUint16() || scivar.isUint32() の結果を返します。
#.sci{
%%out A, B, C
A = [1 2.4; 3 4];
B = [1+2*%i 3+4*%i; 5, 6];
C = uint32(A);
}#

print(A.isUint32());	// false
print(B.isUint32());	// false
print(C.isUint32());	// true

set 関数 SciVar...

値の設定

scivar.set( value )
scivar.set( i, value )
scivar.set( i1, i2, value )

引数
i, j : Integer
引数なしの場合、i=j=1と同じ。
(i,j) の場合、i行j列の要素を指示しています。
(i) の場合、行列の要素を(1,1),(2,1),...,(M,1),(M,2),....とカウントしてi番目の要素を指示しています。ただし、Mは行サイズ。
value : Boolean or Number or Complex(Array) or String
設定する値。
配列 [re,im] は、複素数 Complex(re,im)に変換されてます。
解説
行列の指定位置の要素をvalueにセットします。ただし、scivarは型をもっているので、valueをその型に変更してセットされます。
参照
().$, get
var {Scilab} = require("scilab");

// var A = [[1,2],[2,3],[3,4]];
var A = Scilab.createMatrix(3,2);
A.set(1,1,1); A.set(1,2,2);
A.set(2,1,2); A.set(2,2,3);
A.set(3,1,3); A.set(3,2,4);

#.sci{
%%inp A
%%out B

B = A - 1;
}#

print(B);
/*
     0     1
     1     2
     2     3
*/

sizes 関数 SciVar...

行列サイズを取得

scivar.sizes() : Array

返値
行列のサイズを 配列[行サイズ, 列サイズ]形式で返す。
#.sci{
%%out A
A = [1 2 3
     4 5 6 ];
}#

var [M,N] = A.sizes();
print("rownum of A = " + M);
print("colnum of A = " + N);
/*
rownum of A = 2
colnum of A = 3
*/

toMatrix 関数 SciVar...

Scilab行列をOgO行列へ変換

scivar.toMatrix() : Matrix

返値
scivarの値を OgOの行列へ変換し そのMatrixオブジェクトを返します。
ただし、Scilabの文字列型など変換できないものは, nullを返します。
また、作成された行列のベースindexは 1となっているので、行列要素のindex指定は同じです。。
#.sci{
%%out A, B
A = [1, 2.4; 3,4];
}#

var {Matrix} = require("mathex");

var AA = A.toMatrix();

print( AA instanceof Matrix ); // true
print(AA);
/*
[2,2]
       1     2.4
       3       4
*/

print(AA.base); // 1
print(AA(1,1).$, AA(1,2).$); // 1  2.4
print(AA(2,1).$, AA(2,2).$); // 3  4

toString 関数 SciVar...

文字列化

scivar.toString() : String

返値
scivarのScilab変数で disp(変数)をScilabで実行したとき表示される文字列を返します。
var {Scilab} = require("scilab");

#.sci{
%%out A
A = [1+2*%i 3+4*%i; 5, 6];
disp(A);
}#

print(Scilab.result());
/*
   1. + 2.i   3. + 4.i
   5.             6.          
*/
print(A.toString()); // print(A);
/*
   1. + 2.i   3. + 4.i
   5.             6.          
*/