Main Content

Java 配列の連結

Java® オブジェクトの配列を連結するには、MATLAB® 関数 cat または大かっこ ([]) 演算子を使用します。

Java オブジェクトは、第 1 軸 (縦軸) または第 2 軸 (横軸) に沿ってのみ連結できます。詳細については、MATLAB による Java 配列の表現方法を参照してください。

2 次元の水平方向の連結

以下の例では、2 つの Java 配列を水平方向に連結します。2 行 3 列の配列の d1d2 を作成します。

d1 = javaArray('java.lang.Double',2,3);
for m = 1:2
    for n = 1:3
        d1(m,n) = java.lang.Double(n*2 + m-1);
    end            
end
d1
d1 =

  java.lang.Double[][]:

    [2]    [4]    [6]
    [3]    [5]    [7]
d2 = javaArray('java.lang.Double',2,2);
for m = 1:2
    for n = 1:3
        d2(m,n) = java.lang.Double((n+3)*2 + m-1);
    end            
end
d2
d2 =

  java.lang.Double[][]:

    [8]    [10]    [12]
    [9]    [11]    [13]

2 つの配列を 2 番目の (水平) 次元に沿って連結します。

d3 = cat(2,d1,d2)
d3 =

  java.lang.Double[][]:

    [2]    [4]    [6]    [8]    [10]    [12]
    [3]    [5]    [7]    [9]    [11]    [13]

ベクトル連結

この例では、ベクトルの行連結と列連結の違いを説明します。2 つのベクトル J1J2 を作成します。

import java.lang.Integer
J1 = [];
for ii = 1:3
    J1 = [J1;Integer(ii)];
end
J1
J1 =

  java.lang.Integer[]:

    [1]
    [2]
    [3]
J2 = [];
for ii = 4:6
    J2 = [J2;Integer(ii)];
end
J2
J2 =

  java.lang.Integer[]:

    [4]
    [5]
    [6]

列で連結します。2 つの Java ベクトルを水平に連結すると長いベクトルが作成され、列として出力されます。

Jh = [J1,J2]
Jh =

  java.lang.Integer[]:

    [1]
    [2]
    [3]
    [4]
    [5]
    [6]

行で連結します。2 つの Java ベクトルを垂直に連結すると 2 次元の Java 配列が作成されます。

Jv = [J1;J2]
Jv =

  java.lang.Integer[][]:

    [1]    [2]    [3]
    [4]    [5]    [6]

メモ

MATLAB とは異なり、3 行 1 列の Java 配列は長さ 3 の Java ベクトルと同じではありません。3 行 1 列の配列を作成します。

import java.lang.Integer
arr1 = javaArray('java.lang.Integer',3,1)
arr1 =

  java.lang.Integer[][]:

    []
    []
    []

長さ 3 のベクトルを作成します。

arr2 = javaArray('java.lang.Integer',3)
arr2 =

  java.lang.Integer[]:

    []
    []
    []

関連するトピック