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を返します。
参照
例
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を返します。
参照
例
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へ依頼します。
参照
eval 関数 Scilab...
Scilabプログラムコードを実行
Scilab.eval( progcode ) : String
引数
progcode : String
Scilabが実行できるプログラムコードを与えます。
返値
Scilabが実行して、吐き出された文字列を返します。
参照
例
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 関数 Scilab...
Scilab変数を扱えるオブジェクトを取得
Scilab.getVar( varname ) : Scilab.SciVar
引数
varname : String
変数名。
返値
変数の行列オブジェクトを返します。
参照
例
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関数に処理を依頼します。
参照
例
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プログラムファイル名。
返値
指定したプログラムファイルを実行して、吐き出された文字列を返します。
参照
例
[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を返します。
参照
例
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バイト符号なし整数
解説
参照
例
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...
値の設定と取得
[設定]
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)
と同じになります。
参照
例
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型)を返します。
参照
例
#.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
返値
例
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
返値
例
#.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
返値
例
#.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
返値
参照
例
#.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
返値
参照
例
#.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
返値
参照
例
#.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をその型に変更してセットされます。
参照
例
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.
*/