clearVar 関数 Matlab...
Matlab変数を消去
Matlab.clearVar( var )
引数
var : String or Matlab.MxVar
Matlab変数名 または Matlab.MxVarオブジェクト。複数を渡すことも可能。
例
var {Matlab} = require("matlab");
#.m{
A = [1,2,3];
disp(A);
}#
print(Matlab.result());
/*
1 2 3
*/
Matlab.clearVar("A");
#.m{
disp(A);
}#
print(Matlab.result());
/*
??? 'A' は未定義の関数、または変数です
*/
createMatrix 関数 Matlab...
行列作成
Matlab.createMatrix( vname, mx ) : Matlab.MxVar
Matlab.createMatrix( vname, [x1,x2, ...,xn] ) : Matlab.MxVar
Matlab.createMatrix( vname, [x11,x12, ..., x1n], ..., [xm1,xm2, ..., xmn] ) : Matlab.MxVar
Matlab.createMatrix( vname, M ) : Matlab.MxVar
Matlab.createMatrix( vname, M, N ) : Matlab.MxVar
引数
vname : String
Matlab変数名。
mx : Matrix or Matlab.MxVar
行列オブジェクトまたはMatlab.MxVarオブジェクト。
[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
行列の列数。
返値
作成された行列を操れるオブジェクトを返します。作成に失敗したらnullを返します。
参照
例
var {Matlab} = require("matlab");
// var A = Matlab.createMatrix("A",[Math.cos(th),-Math.sin(th)], [-Math.sin(th),Math.cos(th)]);
var A = Matlab.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).$;
Matlab.setVar("A",A);
#.m{
disp(A);
}#
print(Matlab.result());
/*
0.5000 -0.8660
-0.8660 0.5000
*/
// var B = Matlab.createMatrix("B",[1,[1,1]], [[1,-1],1]);
var B = Matlab.createMatrix("B",2,2, Matlab.COMPLEX);
B(1,1).$ = 1; B(1,2).$ = [1,1];
B(2,1).$ = [1,-1]; B(2,2).$ = 1;
print(B);
/*
1.0000 1.0000 + 1.0000i
1.0000 - 1.0000i 1.0000
*/
createSparse 関数 Matlab...
疎行列を作成
Matlab.createSparse( vname, mx ) : Matlab.MxVar
Matlab.createSparse( vname, [[i1,j1,x1],[i2,j2,x2],...,[in,jn,xn]], [M,N] ) : Matlab.MxVar
Matlab.createSparse( vname, M, N ) : Matlab.MxVar
引数
vname : String
Matlab変数名。
mx : Matrix or Matlab.MxVar
行列オブジェクト または Matlab.MxVarオブジェクト。
[[i1,j1,x1],[i2,j2,x2],...,[in,jn,xn]] : Array of [Integer,Integer,(Number/Complex/Boolean)]
非零要素の行列要素位置とその値を指定。
M : Integer
行列の行数を指定します。
N : Integer
行列の列数を指定します。
返値
作成された疎行列を操れるオブジェクトを返します。作成に失敗したらnullを返します。
参照
例
var {Matlab} = require("matlab");
var A = Matlab.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 = Matlab.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
*/
eval 関数 Matlab...
文字列内の式の評価
Matlab.eval( cmdexpr ) : String
引数
cmdexpr : String
Matlabが実行できる式やコマンドを含んだ文字列を与えます。
返値
Matlabが実行されて吐き出される文字列を返します。
参照
例
var {Matlab} = require("matlab");
var A = [1,2,3];
var scalar = 5;
Matlab.setVar("A",A);
Matlab.setVar("scalar",scalar);
var ret = Matlab.eval("OUT=scalar * A");
print(ret);
/*
OUT =
5 10 15
*/
existVar 関数 Matlab...
変数の存在判定
Matlab.existVar(varname) : Boolean
引数
varname : String
変数名。
返値
変数があればtrueを返します。なければfalseを返します。
参照
getVar 関数 Matlab...
変数値のオブジェクトを取得
Matlab.getVar( varname ) : Matlab.MxVar
引数
varname : String
変数名。
返値
変数の行列オブジェクトを返します。
参照
例
var {Matlab} = require("matlab");
#.m{
A = [1,2,3];
}#
print(Matlab.existVar("A")); // true
print(Matlab.existVar("B")); // false
var A = Matlab.getVar("A");
print(A); // 1 2 3
print(A(1).$); // 1
print(A(2).$); // 2
print(A(3).$); // 3
result 関数 Matlab...
Matlabの実行出力文字列を取得
Matlab.result() : String
返値
例
var {Matlab} = require("matlab");
var A = [1,2,3];
var scalar = 5;
Matlab.setVar("A",A);
Matlab.setVar("scalar",scalar);
Matlab.eval("OUT=scalar * A");
print(Matlab.result());
/*
OUT =
5 10 15
*/
run 関数 Matlab...
プログラムMファイルを実行
Matlab.run( mfile ) : String
引数
mfile : String
プログラムMファイル名。
返値
プログラムMファイルの実行時に吐き出された文字列を返します。
参照
例
[test.m]
OUT = scalar * A;
[JavaScript]
var {Matlab} = require("matlab");
Matlab.setVar("A",[1,2,3]);
Matlab.setVar("scalar",5);
Matlab.run("d:/work/test.m");
var OUT = Matlab.getVar("OUT");
print(OUT); // 5 10 15
setVar 関数 Matlab...
Matlab変数へ値をセット
Matlab.setVar( vname, value ) : Boolean
引数
vname : String
Matlab変数名。
value
セットする値。
value : Boolean or Number or Complex or Stringなら、その値がセットされる。
value : Matlab.MxVar なら、その行列がセットされる。
value : [x1,x2,...,xN] 各xi:Number なら、1xN 実数行列がセットされる。
value : [x11,x12,...,x1N], [x21,x22,...,x2N], ..., [xM1,xM2,...,xMN]
各xij:Number なら、MxN 実数行列がセットされる。
value : [[x11,y11],[x12,y12],...,[x1N,y1N]], [[x21,y21],[x22,y22],...,[x2N,y2N]], ..., [[xM1,yM1],[xM2,yM2],...,[xMN,yMN]]
各xij,yij:Number なら、MxN 複素行列がセットされる。
返値
Matlab変数へ値がセットできたらtrueを返します。失敗したらfalseを返します。
参照
例
var {Matlab} = require("matlab");
var {Complex} = require("mathex");
Matlab.setVar("A",1.23);
Matlab.setVar("B","string");
Matlab.setVar("C",[1,2,3]);
Matlab.setVar("D",[1,2],[3,4]);
Matlab.setVar("E",[[1,2],[2,3]],[[3,4],[4,5]]);
Matlab.setVar("Z",Complex(1,1));
#.m{
A
B
C
D
E
Z
}#
print(Matlab.result());
/*
A =
1.2300
B =
string
C =
1 2 3
D =
1 2
3 4
E =
1.0000 + 2.0000i 2.0000 + 3.0000i
3.0000 + 4.0000i 4.0000 + 5.0000i
Z =
1.0000 + 1.0000i
*/
MxVar クラス ...
Matlabの行列を扱うクラスです。
基本型である実数値や文字列、そして複素数値は 1x1型の行列として扱っています。
().$ MxVar...
値の設定と取得
設定
mxvar().$ = value
mxvar( i ).$ = value
mxvar( i, j ).$ = value
取得
v = mxvar().$
v = mxvar( i ).$
v = mxvar( i, j ).$
引数
i, j : Integer
引数なしの場合、i=j=1と同じ。
(i,j) の場合、i行j列の要素を指示しています。
(i) の場合、行列の要素を(1,1),(2,1),...,(M,1),(M,2),....とカウントしてi番目の要素を指示しています。ただし、Mは行サイズ。
解説
[設定]
mxarry().$=value : mxarry.set(value)
mxarry(i).$=value : mxarry.set(i,value)
mxarry(i,j).$=value : mxarry.set(i,j,value)
と同じになります。
[取得]
v = mxarry().$ : v = mxarry.get()
v = mxarry(i).$ : v = mxarry.get(i)
v = mxarry(i,j).$ : v = mxarry.get(i,j)
と同じになります。
参照
例
// Matalabをロード
var {Matlab} = require("matlab");
//var A = Matlab.createMatrix("A", [1,2],[2,3],[3,4]);
var A = Matlab.createMatrix("A",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;
#.m{
%%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 関数 MxVar...
値を取り出す
mxvar.get() : Value
mxvar.get(i) : Value
mxvar.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は行サイズ。
返値
mxvarが数値型行列なら、指定位置の数値(Number型)を返します。
mxvarが複素数型行列なら、指定位置の複素数(Complexオブジェクト)を返します。
mxvarが論理型行列なら、指定位置の論理値(true, false) を返します。
mxvarが文字列型行列なら、指定位置の文字列(String型)を返します。
参照
例
#.m{
%%out A,B,C,D
A = 1.23;
B = 'string';
C = [1,2,3; 4,5,6];
D = [1+2i,3+4i];
}#
//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
isComplex 関数 MxVar...
複素数タイプかどうかの判定
mxvar.isComplex() : Boolean
返値
mxvarが複素数型行列ならtrue, そうでなければfalseを返します。
例
#.m{
%%out A, B
A = [1 2; 3 4];
B = [1+2i 3+4i; 5, 6];
}#
print(A.isComplex()); // false
print(B.isComplex()); // true
isDouble 関数 MxVar...
倍精度タイプかどうかの判定
mxvar.isDouble() : Boolean
返値
mxvarが倍精度タイプ数値型行列ならtrue, そうでなければfalseを返します。
参照
例
#.m{
%%out A, B, C
A = [1 2; 3 4];
B = [1+2i 3+4i; 5, 6];
C = int32(A+B);
}#
print(A.isDouble()); // true
print(B.isDouble()); // true
print(C.isDouble()); // false
isEmpty 関数 MxVar...
空かどうかの判定
mxvar.isEmpty() : Boolean
返値
mxvarが サイズ0x0の行列ならtrue, そうでなければfalseを返します。
例
#.m{
%%out A, B, C
A = [1 2; 3 4];
B = [];
}#
print(A.isEmpty()); // false
print(B.isEmpty()); // true
isIntX 関数 (X=8,16,32) MxVar...
整数タイプかどうかの判定
mxvar.isInt() : Boolean
mxvar.isInt8() : Boolean
mxvar.isInt16() : Boolean
mxvar.isInt32() : Boolean
返値
mxvarが X(=8,16,32)ビット符号つき整数行列ならtrue, そうでなければfalseを返します。
isInt関数では、mxvar.isInt8() || mxvar.isInt16() || mxvar.isInt32() の結果を返します。
例
#.m{
%%out A, B, C
A = [1 2; 3 4];
B = [1+2i 3+4i; 5, 6];
C = int32(A+B);
}#
print(A.isInt32()); // false
print(B.isInt32()); // false
print(C.isInt32()); // true
isLogical, isBoolean 関数 MxVar...
論理値タイプかどうかの判定
mxvar.isLogical() : Boolean
mxvar.isBoolean() : Boolean
返値
mxvarが 論理値型行列ならtrue, そうでなければfalseを返します。
例
#.m{
%%out A, B
A = [1 2; 3 4];
B = A>2;
}#
print(A.isLogical()); // false
print(B.isLogical()); // true
isNumeric 関数 MxVar...
数値タイプかどうかの判定
mxvar.isNumeric() : Boolean
返値
mxvarが 数値行列ならtrue, そうでなければfalseを返します。
参照
例
#.m{
%%out A, B, C, D, E, F
A = [1 2; 3 4];
B = [1+2i 3+4i; 5, 6];
C = int32(A+B);
D = 'string';
E = [true,false];
}#
print(A.isNumeric()); // true
print(B.isNumeric()); // true
print(C.isNumeric()); // true
print(D.isNumeric()); // false
print(E.isNumeric()); // false
isSingle 関数 MxVar...
単精度タイプかどうかの判定
mxvar.isSingle() : Boolean
返値
mxvarが単精度タイプ数値型行列ならtrue, そうでなければfalseを返します。
参照
例
#.m{
%%out A, B, C, D, E, F
A = [1 2; 3 4];
B = [1+2i 3+4i; 5, 6];
C = single(A);
D = single(B);
}#
print(A.isSingle()); // false
print(B.isSingle()); // false
print(C.isSingle()); // true
print(D.isSingle()); // true
isSparse 関数 MxVar...
疎行列かどうかの判定
mxvar.isSparse() : Boolean
返値
mxvarが疎行列ならtrue, そうでなければfalseを返します。
参照
例
#.m{
%%out A, B
A = [1,2];
B = sparse(50,50,150);
B(1,1) = 1; B(1,2) = 2;
B(2,1) = 1; B(2,2) = 2; B(2,3) = 3;
B(3,2) = 2; B(3,3) = 3; B(3,4) = 4;
}#
print(A.isSparse()); // false
print(B.isSparse()); // true
isString 関数 MxVar...
文字列かどうかの判定
mxvar.isString() : Boolean
返値
mxvarが文字列型行列ならtrue, そうでなければfalseを返します。
参照
例
#.m{
%%out A, B
A = 'string';
B = [1, 2];
}#
print(A.isString()); // true
print(B.isString()); // false
isUintX 関数 (X=8,16,32) MxVar...
符号なし整数タイプかどうかの判定
mxvar.isUint() : Boolean
mxvar.isUint8() : Boolean
mxvar.isUint16() : Boolean
mxvar.isUint32() : Boolean
返値
mxvarが X(=8,16,32)ビット符号なし整数行列ならtrue, そうでなければfalseを返します。
isUint関数では、mxvar.isUint8() || mxvar.isUint16() || mxvar.isUint32() の結果を返します。
例
#.m{
%%out A, B, C
A = [1 2; 3 4];
B = [1+2i 3+4i; 5, 6];
C = uint32(A+B);
}#
print(A.isUint32()); // false
print(B.isUint32()); // false
print(C.isUint32()); // true
set 関数 MxVar...
値の設定
mxvar.set( value )
mxvar.set( i, value )
mxvar.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にセットします。ただし、mxvarは型をもっているので、valueをその型に変更してセットされます。
参照
例
var {Matlab} = require("matlab");
// var A = Matrix([1,2],[2,3],[3,4]);
var A = Matlab.createMatrix("A",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);
#.m{
%%inp A
%%out B
B = A - 1;
}#
print(B);
/*
0 1
1 2
2 3
*/
sizes 関数 MxVar...
行列サイズを取得
mxvar.sizes() : Array
返値
行列のサイズを 配列[行サイズ, 列サイズ]形式で返す。
例
#.m{
%%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 関数 MxVar...
Matlab行列をOgO行列へ変換
mxvar.toMatrix() : Matrix
返値
mxvarの値を OgOの行列へ変換し そのMatrixオブジェクトを返します。
ただし、Matlabの文字列型など変換できないものは, nullを返します。
また、作成された行列のベースindexは 1となっているので、行列要素のindex指定は同じです。。
例
var {Matrix} = require('mathex');
#.m{
%%out A, B
A = [1, 2.4; 3,4];
}#
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 関数 MxVar...
文字列化
mxvar.toString() : String
返値
mxvarを値にもつ変数で disp(変数)をMatlabで実行したとき表示される文字列を返します。
例
var {Matlab} = require("matlab");
#.m{
%%out A
A = [1+2i 3+4i; 5, 6];
disp(A);
}#
print(Matlab.result());
/*
1.0000 + 2.0000i 3.0000 + 4.0000i
5.0000 6.0000
*/
print(A.toString());
/*
1.0000 + 2.0000i 3.0000 + 4.0000i
5.0000 6.0000
*/