В Java® нет никакого прямого представления, доступного для массивов структур MATLAB® и массивов ячеек.
В результате, когда экземпляр MWStructArray
или MWCellArray
преобразован в собственный тип Java с помощью метода toArray()
, вывод является многомерным массивом Object
, который может быть трудным к процессу.
Когда вы используете пакеты MATLAB Compiler SDK™ с RMI, однако, вы управляете, как сервер передает результаты обратно вызовов функции MATLAB клиента. Сервер может собираться упорядочить вывод клиенту как MWArray
(пакет com.mathworks.toolbox.javabuilder
) подтип или как собственный тип данных Java. Представление собственного типа данных Java подтипов MWArray
получено путем вызова метода toArray()
сервером.
Используя собственные представления Java массивов структур MATLAB и массивов ячеек рекомендуется, если оба из них верны:
У вас есть функции MATLAB на сервере с struct MATLAB или типами данных ячейки как вводы или выводы
Вы не хотите или должны установить MATLAB Runtime на своих клиентских машинах
Классам в пакете com.mathworks.extern.java
(в javabuilder.jar
) не нужен MATLAB Runtime. Имена классов в этом пакете совпадают с теми в com.mathworks.toolbox.javabuilder
— разрешение конечному пользователю легко создать экземпляры com.mathworks.extern.java.MWStructArray
или com.mathworks.extern.java.MWCellArray
, которые работают то же самое подобно названными классами в com.mathworks.toolbox.javabuilder
— на машине, которая не имеет MATLAB Runtime.
Доступность MATLAB Runtime на клиентской машине диктует, как сервер должен быть установлен для маршалинга функций MATLAB, поскольку иерархия классов MWArray
может использоваться только с MATLAB Runtime. Если клиентская машина не имеет MATLAB Runtime в наличии, сервер возвращает выходной параметр toArray()
для ячейки или массивов структур как экземпляры com.mathworks.extern.java.MWStructArray
или com.mathworks.extern.java.MWCellArray
.