Преобразование данных с типами MATLAB и Java

Работа с типами данных MATLAB

Существует много типов данных, что можно работать с в MATLAB®. Каждый из этих типов данных в форме матрицы или массива. Можно создать матрицы и массивы и целочисленных данных с плавающей точкой, символов и строк и логических истинных и ложных состояний. Структуры и массивы ячеек обеспечивают способ сохранить отличающиеся типы данных в том же массиве.

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

Клиент Java® следует за Java-MATLAB-Interface (JMI) правила для маршалинга данных. Это расширяется, те правила для скалярного Java упаковали типы, позволив автоупаковку и распаковывание, которое не поддерживает JMI.

Примечание

Указатели на функции не поддержаны MATLAB Production Server™.

Основные типы данных MATLAB

Ожидаемые результаты преобразования для Java к типам MATLAB перечислены в Преобразовании Типов Java к Типам MATLAB. Ожидаемые результаты преобразования для MATLAB к типам Java перечислены в Преобразовании Типов MATLAB к Типам Java.

Скалярное числовое приведение типа

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

Основное исключение к этому правилу - то, что MATLAB скалярные данные double может быть сопоставлен на любой Java числовой тип. Поскольку double является числовым типом по умолчанию в MATLAB, это исключение предоставляет больше гибкости пользователям клиентского API MATLAB Production Server Java.

MATLAB на Java Числовое Соответствие типов описывает соответствие типов для скалярного числового приведения.

MATLAB на Java числовое соответствие типов

Тип MATLABТипы Java
uint8short, int, long, float, double
int8short, int, long, float, double
uint16int, long, float, double
int16int, long, float, double
uint32long, float, double
int32long, float, double
uint64float, double
int64float, double
singledouble
doublebyte, short, int, long, float

Размерность на Java и типах данных MATLAB

В MATLAB размерность является атрибутом фундаментальных типов и не добавляет к количеству типов, как это делает на Java.

На Java double, double[] и double[][][] являются тремя различными типами данных. В MATLAB существует только тип данных double и возможно скалярный экземпляр, векторный экземпляр или многомерный экземпляр.

Подпись JavaЗначение возвращено из MATLAB
double[][][] foo() ones(1,2,3)

Приведение размерности

Как вы задаете свою функцию MATLAB, и соответствующая сигнатура метода Java определяет, будут ли ваши выходные данные принуждены, с помощью дополнения или усечения.

Это приведение автоматически выполняется для вас. В этом разделе описываются правила, сопровождаемые для дополнения и усечения.

 Дополнение

 Усечение

Пустые (нулевые) размерности

Передающие массивы нуля (0) размерности (иногда названный empties) приводят к пустой матрице из MATLAB.

Подпись JavaЗначение возвращено из MATLAB
double[] foo() []

 Передающая порожняя тара Java к MATLAB

 Передающая порожняя тара MATLAB на Java

Помещенные в коробку типы

Boxed Types используется, чтобы перенести непрозрачные структуры C.

Клиент Java выполнит примитивный к помещенному в коробку преобразованию типов, если помещенные в коробку типы будут использоваться, как возвращают типы в сигнатуре метода Java.

Подпись JavaЗначение возвращено из MATLAB
Double foo()1.0

Например, следующие сигнатуры методов работают взаимозаменяемо:

double[] foo();         Double[] foo();
double[][][] foo();     Double[][][] foo();

Подписанные и типы без знака на Java и типах данных MATLAB

Числовые классы в MATLAB включают целые числа со знаком и беззнаковое целое. Java не имеет типов без знака.