外部インタフェース/API | ![]() ![]() |
MATLAB内でのオブジェクトの配列の作成
Javaオブジェクトの配列として定義された1つまたは複数の引数をもつJavaメソッドを呼び出すには、ほとんどの場合、Java配列内のオブジェクトを渡す必要があります。Javaメソッドあるいはコンストラクタの呼び出しにおいてオブジェクトの配列を作成できます。あるいは、MATLAB内部で配列を作成できます。
MATLABのjavaArray
関数を使って、MATLABで単一の多次元配列として扱われるJava配列構造体を作成します。配列の次元数とサイズと共に、それらを格納するオブジェクトのクラスを指定します。1次元のJava配列を基本の作成ブロックとして利用して、MATLABはjavaArray
コマンドで要求される次元を満たす配列構造を作成します。
javaArray関数の使用法
Javaオブジェクト配列を作成するには、MATLABのjavaArray関数を使います。これはつぎのシンタックスです。
A = javaArray('element_class', m, n, p, ...)
第一引数は、'element_class
' 文字列で、配列内の要素のクラス名です。修飾子付きの名前(パッケージとクラス名)を指定しなければなりません。その他の引数(m, n, p, ...
)は、配列の各次元内の要素数です。
javaArray
を使って作成した配列は、以下のJavaコードを使って作成した配列と同じです。
A = new element_class[m][n][p]...;
つぎのコマンドは、各々がjava.lang.Double
クラスの5個のオブジェクトをもつ4つの低レベルの配列のJava配列を作成します(おそらくjava.lang.Double
クラスのインスタンスよりも基本的なdouble
タイプを使うかもしれませんが、このコンテキストでは簡単な例題を与えます)。
dblArray = javaArray('java.lang.Double', 4, 5);
javaArray
関数は、作成する配列要素に値を置きません。値は別個に置かなければなりません。つぎのMATLABコードは、作成したJava配列dblArray
にjava.lang.Double
タイプのオブジェクトを格納します。
for i = 1:4 for j = 1:5 dblArray(i,j) = java.lang.Double((i*10) + j); end end dblArray dblArray = java.lang.Double[][]: [11] [12] [13] [14] [15] [21] [22] [23] [24] [25] [31] [32] [33] [34] [35] [41] [42] [43] [44] [45]
Java配列を作成するその他の方法
MATLABの典型的なシンタックスを使ってjavaオブジェクトの配列を作成することも可能です。たとえば、つぎのシンタックスは、タイプdoubleの4行5列のMATLAB配列を作成し、配列の各要素にゼロを割り当てます。
matlabArray(4,5) = 0;
Javaクラス名を指定する必要があること以外は、同じシンタックスを使ってMATLABでJava配列を作成します。この場合では0
に割り当てられた値は、配列の最後の要素javaArray(4,5)
に格納されます。配列のその他のすべての要素は、空行列を受け取ります。
javaArray(4,5) = java.lang.Double(0) javaArray = java.lang.Double[][]: [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [0]
![]() | Java配列の機能 | Java配列の要素へのアクセス | ![]() |