MATLAB®
javaArray
функция позволяет вам создать Java® массив, который MATLAB обрабатывает как один многомерный массив. Вы задаете количество и размер измерений массива наряду с классом объектов, которые вы хотите хранить в нем. Используя одномерный массив Java в качестве своего основного базового блока, MATLAB затем создает массив Java, который удовлетворяет размерностям, запрошенным в javaArray
команда.
Чтобы создать объектный массив Java, используйте MATLAB javaArray
функция. Например, следующая команда создает массив 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.7577] [0.7060] [0.8235] [0.4387] [0.4898] [0.7431] [0.0318] [0.6948] [0.3816] [0.4456] [0.3922] [0.2769] [0.3171] [0.7655] [0.6463] [0.6555] [0.0462] [0.9502] [0.7952] [0.7094]
Необходимо преобразовать каждый элемент A
на java.lang.Double
тип. Для получения дополнительной информации см. раздел «Передача объектов Java».
Чтобы передать массив примитивного типа Java в метод Java, необходимо передать массив эквивалентного типа MATLAB. Для получения дополнительной информации о отображении типов смотрите MATLAB Type to 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