Функция MATLAB® javaArray
позволяет вам создать массив Java®, который MATLAB обрабатывает как единственный многомерный массив. Вы задаете номер и размер измерений массива наряду с классом объектов, которые вы намереваетесь хранить в нем. Используя одномерный массив Java как его первичный стандартный блок, MATLAB затем создает массив Java, который удовлетворяет размерности, которые требуют в команде javaArray
.
Чтобы создать объектный массив Java, используйте функцию javaArray
MATLAB. Например, следующая команда создает массив Java четырех более низких массивов уровня, каждый содержащий пять объектов класса java.lang.Double
.
dblArray = javaArray('java.lang.Double',4,5);
Функция javaArray
не инициализирует значения в массиве. Этот код копирует первые четыре строки массива MATLAB A
, содержа случайным образом сгенерированные данные, в dblArray
.
A = rand(5); for m = 1:4 for n = 1:5 dblArray(m,n) = java.lang.Double(A(m,n)); end end dblArray
dblArray = java.lang.Double[][]: [0.2703] [0.3912] [0.3774] [0.6713] [0.8620] [0.1971] [0.7691] [0.2160] [0.4386] [0.9899] [0.8217] [0.3968] [0.7904] [0.8335] [0.5144] [0.4299] [0.8085] [0.9493] [0.7689] [0.8843]
Необходимо преобразовать каждый элемент A
к типу java.lang.Double
. Для получения дополнительной информации смотрите Объекты Передачи Java.
Чтобы передать массив примитивного Java вводят к методу Java, необходимо передать в массиве эквивалентного типа MATLAB. Для получения дополнительной информации отображения типа смотрите Тип MATLAB к Отображению Типа Java.
Например, создайте java.awt.Polygon
путем рассмотрения конструкторов в следующем окне методов.
methodsview('java.awt.Polygon')
Этот конструктор использует массив Java int
.
Polygon (int[],int[],int)
MATLAB преобразовывает double
MATLAB в скаляр Java или массив int
. Создайте два массива MATLAB, идентифицировав четыре точки полигона.
x = [10 40 95 125 10]; y = [50 15 0 60 50]; polygon = java.awt.Polygon(x,y,length(x));
Чтобы вызвать метод объекта Polygon
contains
, посмотрите на его подпись в окне метода.
boolean contains (double,double)
MATLAB преобразовывает double
MATLAB в Java double
. Этот оператор проверяет, ли точка (50,40) в полигоне.
contains(polygon,50,40)
ans = logical 1