Зачем использовать собственные массивы ячеек и массивы структур?

В Java®, нет прямого представления для MATLAB® структурировать массивы и массивы ячеек.

В результате, когда образец MWStructArray или MWCellArray преобразуется в собственный тип Java с помощью toArray() метод, выходы являются многомерными Object массив, который может оказаться трудным для обработки.

При использовании пакетов MATLAB Compiler SDK™ с RMI, однако, у вас есть контроль над тем, как сервер отправляет результаты вызовов функции MATLAB обратно клиенту. Сервер может быть настроен, чтобы маршалить выход на клиент как MWArray (com.mathworks.toolbox.javabuilder пакет) подтипа или как собственного типа данных Java. Представление типа данных Java MWArray подтипы получаются путем вызова toArray() метод сервером.

Использование собственных представлений MATLAB struct и массивов ячеек Java рекомендуется, если оба из них имеют значение true:

  • У вас есть функции MATLAB на сервере с типами данных struct или камера в качестве входов или выходов

  • Вы не хотите или не должны устанавливать MATLAB Runtime на свои клиентские компьютеры

Использование собственных типов не требует использования клиентского 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.