Используйте класс MATLAB в приложении Java

Обзор

Этот пример показывает вам, как создать Java® приложение, которое вызывает MATLAB® обертка функционирует для класса MATLAB.

В этом примере вы выполняете следующие шаги:

  1. Используйте MATLAB Compiler SDK™, чтобы создать пакет, который использует функции обертки MATLAB, чтобы получить доступ к классу MATLAB.

  2. Вызовите функции обертки MATLAB в приложении Java.

  3. Создайте и запустите приложение.

Процедура

  1. В MATLAB исследуйте код MATLAB, который вы хотите группировать. В данном примере создайте класс MATLAB под названием MyMATLABClass.m использование следующего кода:

    classdef MyMatlabClass < handle
        
        properties (Access = private)
            x % input variable
            y % input variable
            z % result variable
        end
        
        methods
            function this = MyMatlabClass()
                this.x = []; this.y = [];
            end
            
            function setInput(this, input)
                input = input(:);           
                if isnumeric(input) && numel(input) == 2
                    this.x = input(1);
                    this.y = input(2);
                end
            end
            
            function result = getResult(this)
                result = this.z;
            end
            
            function status = compute(this)
                try
                    this.z = (this.x.^2 + this.y.^2)^0.5;
                    status = true;
                catch
                    status = false;
                end
            end
        end
        
    end
  2. Создайте четыре функции обертки MATLAB для класса: CreateMyMATLABClass.m, SetInput.m, Compute.m, и GetResult.m.

    CreateMyMATLABClass.m.  

    function instance = CreateMyMATLABClass()
        instance = MyMATLABClass();
    end

  3. Создайте пакет Java с приложением Library Compiler или compiler.build.javaPackage использование следующей информации:

    Поле Значение
    Имя библиотекиMyMATLABClass1
    ClassName Class1
    Файлы, чтобы скомпилироватьCreateMyMATLABClass.m
    SetInput.m
    Compute.m
    GetResult.m

    Например, если вы используете compiler.build.javaPackageВвод:

    buildResults = compiler.build.javaPackage(["CreateMyMATLABClass.m", ...
    "SetInput.m","Compute.m","GetResult.m"], ...
    'PackageName','MyMATLABClass1', ...
    'ClassName','Class1');

    Для получения дополнительной информации смотрите, что инструкции в Генерируют приложение Java Пакета и Сборки Java.

    Примечание

    Вы не должны вручную добавлять MyMATLABClass.m файл к пакету, когда компилятор автоматически включает его во время анализа зависимостей.

  4. Перейдите к папке, которая содержит сгенерированный MyMATLABClass1.jar пакет. Если вы использовали Library Compiler, пакет находится в for_testing папка.

  5. Запишите исходный код для приложения, это получает доступ к функциям MATLAB. Код для этого примера предоставлен ниже.

     javadriver.java

  6. Откройте окно командной строки и перейдите к папке, которая содержит javadriver.java и MyMATLABClass.jar.

  7. Скомпилируйте javadriver.java приложение с помощью javac.

    • На Windows®Ввод:

      javac -classpath "matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\MyMATLABClass.jar javadriver.java

    • На UNIX®Ввод:

      javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./MyMATLABClass.jar javadriver.java

    Замените matlabroot с путем к вашему MATLAB или папке установки MATLAB Runtime. Например, на Linux®, путем может быть /usr/local/MATLAB/R2021b.

  8. Запустите javadriver приложение.

    На Windows введите:

    java -classpath .;"matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\MyMATLABClass.jar javadriver

    На Linux введите:

    java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":.\MyMATLABClass.jar javadriver

    Примечание

    Если при запуске приложение на Mac 64-битная платформа, необходимо добавить -d64 отметьте в команде Java.

javadriver программа отображает следующий вывод:

--- USE: Constructors --- 
1 
2.2361 
--- Done. --- 

Смотрите также

|

Похожие темы