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

Пакет com.mathworks.toolbox.javabuilder

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

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

Пакет описание com.mathworks.toolbox.javabuilder

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

Типы данных MATLAB

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

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

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

Для программистов Java MATLAB Compiler SDK обеспечивает интерфейс к типам данных MATLAB через иерархию классов, обеспеченную этим пакетом. Во главе этой иерархии классов находится MWArray, который является абстрактным классом. Конкретные подклассы MWArray представляют один или несколько типов данных MATLAB. Класс MWArray имеет следующие подклассы, представляющие главные типы MATLAB: MWNumericArray, MWLogicalArray, MWCharArray, MWCellArray, MWStructArray, MWFunctionHandle и MWJavaObjectRef. Экземпляр одного из этих подклассов может представлять или скаляр, вектор или много размерные базовые данные MATLAB. Каждый класс имеет функции, которые могут использоваться, чтобы запросить различные атрибуты, такие как размерность, размер и тип фактических данных MATLAB, которые это представляет. Существуют также функции, которые могут использоваться, чтобы получить и установить базовые данные MATLAB.

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

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

Тип JavaТип MWArrayТип MATLAB
дважды, java.lang.DoubleMWNumericArray'double'
java.lang.NumberMWNumericArray'double'
плавание, java.lang.FloatMWNumericArrayединственный
байт, java.lang.ByteMWNumericArrayint8
короткий, java.lang.ShortMWNumericArrayint16
int, java.lang.IntegerMWNumericArrayint32
долго, java.lang.LongMWNumericArrayint64
char, java.lang.CharacterMWCharArray'char'
java.lang.StringMWCharArray'char'
boolean, java.lang.BooleanMWLogicalArrayлогический
N/AMWCellArrayячейка
N/AMWStructArrayструктура

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

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

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

Все данные, возвращенные в вызов метода, получены клиентским приложением 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. патентует Торговые марки

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