Чтобы конкатенировать массивы объектов 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[]: [] [] []