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

В 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 на своих клиентских машинах

Используя нативные типы не требует клиентского MATLAB Runtime

Классам в пакете com.mathworks.extern.javajavabuilder.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.