Пропустить навигационные ссылки

Упаковать com.mathworks.toolbox.javabuilder

Этот пакет предоставляет классы, которые определяют правила преобразования данных между Java и окружением программирования MATLAB.

См.: Описание

Упаковать com.mathworks.toolbox.javabuilder Описание

Этот пакет предоставляет классы, которые определяют правила преобразования данных между Java и окружением программирования MATLAB. Он также имеет несколько служебных классов, которые позволяют вам изменить окружение MATLAB (MATLAB Runtime), которая выполняет базовый код MATLAB.

Типы данных MATLAB

В среде MATLAB массив является базовым базовым блоком для всех типов данных. Существуют скаляры (матрицы 1 на 1), векторы (матрицы только с одной строкой или столбцом), матрицы (с двумя размерностями) и многомерные массивы с более чем двумя измерениями. MATLAB имеет другие способы хранения как числовых, так и нечисловых данных, но обычно лучше всего думать обо всем как об массиве.

Основные типы данных, предлагаемые MATLAB, включают логические (логические), char, числовые, камера, struct (structure), указатели на функцию и объекты Java. Тип числовых данных имеет подтипы, которые должны представлять подписанные и беззнаковые, целое число и данные с плавающей точкой. Камера и struct являются определенными типами данных MATLAB, которые выступают в качестве контейнеров для различных типов данных. Каждый из типов данных MATLAB находится в форме массива, который может быть минимальным размером 0 на 0, но может вырасти до n-мерного массива любого размера. Для получения дополнительной информации о типах данных MATLAB посетите веб-сайт поддержки MathWorks и см. раздел «Основы программирования».

Типы данных MATLAB Compiler SDK и MATLAB

Для программистов Java MATLAB Compiler SDK обеспечивает интерфейс к типам данных MATLAB через иерархию классов, предоставляемую этим пакетом. В верхней части этой иерархии классов находится MWArray, который является абстрактным классом. Конкретные подклассы MWArray представляют один или несколько типов данных MATLAB. Класс MWA rray имеет следующие подклассы, представляющие основные типы MATLAB: MWN umeric Array, MWL ogical Array, MWC har Array, MWS truct Array Образец одного из этих подклассов может представлять скаляр, вектор или многомерные базовые данные MATLAB. Каждый класс имеет функции, которые могут использоваться для запроса различных атрибутов, таких как размерность, размер и тип фактических данных MATLAB, которые он представляет. Существуют также функции, которые могут использоваться, чтобы получить и задать базовые данные MATLAB.

Правила преобразования данных

В следующей таблице перечислены правила преобразования данных для преобразования типов данных Java в типы MATLAB с помощью иерархии классов MWArray:

Тип JavaТип MWArrayТип MATLAB
double, java.lang.DoubleMWNumericArrayдважды
java.lang. ЧислоMWNumericArrayдважды
с плавающей точкой, java.lang.FloatMWNumericArrayодинок
byte, java.lang.ByteMWNumericArrayint8
короткий, java.lang.ShortMWNumericArrayint16
int, java.lang.Целое числоMWNumericArrayint32
длинный, java.lang.LongMWNumericArrayint64
char, символMWCharArraychar
java.lang. СтрокаMWCharArraychar
логический, java.lang.BooleanMWLogicalArrayлогичный
Н/ДMWCellArrayкамера
Н/ДMWStructArrayструктура

Примечание: Java не имеет неподписанных типов, чтобы представлять типы uint8, uint16, uint32 и uint64, используемые в MATLAB. Конструкция и доступ к массивам MATLAB неподписанного типа требуют преобразования в соответствующие типы. Java не имеет встроенного типа данных, который может представлять конкретные типы камер и struct MATLAB.

Преобразование данных Java-MATLAB

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

Все данные, возвращенные из вызова метода, принимаются клиентским приложением Java как образец соответствующего подкласса MWArray. Для примера массив ячеек MATLAB возвращается в приложение Java в качестве объекта MWCellArray. Возвращаемые данные не преобразуются автоматически в собственный тип Java. Если вы хотите выполнить такое преобразование, используйте toArray метод подкласса MWArray, к которому относятся возвраты данные.

Управление памятью

Образцы подтипов MWArray должны быть удалены, когда это больше не требуется. Особое внимание к управлению памятью необходимо из-за зависимости этих классов от MATLAB Runtime. Ниже приведен фрагмент кода из одного из примеров, поставляемых с MATLAB Compiler SDK, который демонстрирует, как выполнить управление памятью для типов MWArray.

        // magic is a class generated using MATLAB Compiler SDK that exposes
        // the MATLAB function makesqr  
 
        MWNumericArray n = null;   // Stores input value 
        Object[] result = null;    // Stores the result 
        magic theMagic = null;     // Stores magic class instance
 
        try
        {         
            n = new MWNumericArray(Double.valueOf(args[0]),MWClassID.DOUBLE);        

            // Create new magic object
            theMagic = new magic();

            // Compute magic square 
            result = theMagic.makesqr(1, n);         
        }
        catch (Exception e)
        {
            System.out.println("Exception: " + e.toString());
        }
        finally
        {
            // Free native resources 
            MWArray.disposeArray(n);
            MWArray.disposeArray(result);
            if (theMagic != null)
               theMagic.dispose();
        }                     
 
См. также:
com.mathworks.toolbox.javabuilder.remoting
Пропустить навигационные ссылки

© 1994-2017 The MathWorks, Inc. • патентыторговые марки

Для просмотра документации необходимо авторизоваться на сайте