Конкатенация массивов 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 создает 2-D массив Java.

Jv = [J1;J2]
Jv =

  java.lang.Integer[][]:

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

Примечание

В отличие от MATLAB, массив Java 3x1 отличается от вектора 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[]:

    []
    []
    []

Похожие темы