Этот пример показывает вам, как создать Java® приложение, которое вызывает MATLAB® обертка функционирует для класса MATLAB.
В этом примере вы выполняете следующие шаги:
Используйте MATLAB Compiler SDK™, чтобы создать пакет, который использует функции обертки MATLAB, чтобы получить доступ к классу MATLAB.
Вызовите функции обертки MATLAB в приложении Java.
Создайте и запустите приложение.
В 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
Создайте четыре функции обертки MATLAB для класса: CreateMyMATLABClass.m
, SetInput.m
, Compute.m
, и GetResult.m
.
CreateMyMATLABClass.m.
function instance = CreateMyMATLABClass() instance = MyMATLABClass(); end
Создайте пакет 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
файл к пакету, когда компилятор автоматически включает его во время анализа зависимостей.
Перейдите к папке, которая содержит сгенерированный MyMATLABClass1.jar
пакет. Если вы использовали Library Compiler, пакет находится в for_testing
папка.
Запишите исходный код для приложения, это получает доступ к функциям MATLAB. Код для этого примера предоставлен ниже.
Откройте окно командной строки и перейдите к папке, которая содержит javadriver.java
и MyMATLABClass.jar
.
Скомпилируйте 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
Замените
с путем к вашему MATLAB или папке установки MATLAB Runtime. Например, на Linux®, путем может быть matlabroot
/usr/local/MATLAB/R2021b
.
Запустите 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. ---
libraryCompiler
| compiler.build.javaPackage