外部インタフェース/API | ![]() ![]() |
Java配列の結合
Java配列に対して行える結合の程度は、MATLABとJava配列との明確な構造の違いにより制限されます。MATLABの多次元配列のJava版は、1次元Java配列の配列で構成されるかなり複雑な構造です。この構造の個々の低レベル配列は、長さが異なり、配列の構造全体が一様でなく、でこぼこである場合があります。Java配列のこの性質は、配列間の不適合となる可能性があり、そのためMATLABの結合演算によって結合される程度を制限します。
結合するJava配列が同じクラスのとき(あるいは配列のクラスがもう一方の配列クラスに割り当て可能であるとき)、割り当てに互換性があると考えられます。この場合、結果の配列のクラスは構成要素の配列のすべてに互換性があるクラスです。そして、結果の配列の長さは、構成要素の配列の長さの総和です。
下記のjava.awt.Frame
の2つの配列を考えます。frmArray1
配列は、Frameオブジェクトの3行5列配列です。frmArray2
配列は、同じオブジェクトの7行12列配列です。cat
コマンドを使って2つの配列を結合します。結果は、java.awt.Frameクラスの10要素配列です。
frmArray1 = javaArray('java.awt.Frame', 3, 5); frmArray2 = javaArray('java.awt.Frame', 7, 12); twoFrames = cat(1, frmArray1, frmArray2); class(twoFrames) ans = java.awt.Frame[][] length(twoFrames) ans = 10
構成要素の配列に割り当ての互換性がない場合、結果の配列はクラスjava.lang.Object
です。配列の長さは、結合によって連結された配列の数と等しくなります。これは、以下の例で示されます。
ptArray = javaArray('java.awt.Point', 8, 5); dblArray = javaArray('java.lang.Double', 8, 5); class([ptArray dblArray]) ans = java.lang.Object[] length([ptArray dblArray]) ans = 2
![]() | Java配列の割り当て | 新規の配列参照の作成 | ![]() |