Конкатенация массивов Java

Чтобы конкатенировать массивы объектов Java®, используйте функцию MATLAB® cat или квадратную скобку ([]) операторы.

Можно конкатенировать объекты Java только вдоль первой (вертикальной) или второй (горизонтальной) оси. Для получения дополнительной информации смотрите, Как MATLAB Представляет Массивы Java.

Двумерная горизонтальная конкатенация

Этот пример горизонтально конкатенирует два массива Java. Создайте массивы 2х3 d1 и d2.

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]

Конкатенация этих двух массивов по второму (горизонтальному) измерению.

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

  java.lang.Double[][]:

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

Векторная конкатенация

Этот пример показывает различие между конкатенацией строки и столбца для векторов. Создайте два вектора J1 и J2.

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]

Конкатенация столбцом. Горизонтально конкатенация двух векторов Java создает более длинный вектор, который распечатывает как столбец.

Jh = [J1,J2]
Jh =

  java.lang.Integer[]:

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

Конкатенация строкой. Вертикально конкатенация двух векторов Java создает 2D массив Java.

Jv = [J1;J2]
Jv =

  java.lang.Integer[][]:

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

Примечание

В отличие от MATLAB, 3x1 массив Java не является тем же самым как вектором Java длины 3. Создайте 3x1 массив.

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[]:

    []
    []
    []

Похожие темы