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 в тип Java.
Например, создайте java.awt.Polygon просматривая конструкторы в следующем окне методов.
methodsview('java.awt.Polygon')Этот конструктор использует массив Java int.
Polygon (int[],int[],int)
MATLAB преобразует MATLAB double в скаляр или массив 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 преобразует MATLAB double на Java double. Этот оператор проверяет, находится ли точка (50,40) внутри многоугольника.
contains(polygon,50,40)
ans = logical 1