То В этом примере показано, как вызвать MATLAB®, сгенерировало метод в приложении Java®.
Создать приложение Java, которое вызывает MATLAB, сгенерировало метод:
Установите MATLAB Runtime и сгенерированные файлы JAR одним из следующих способов:
Запустите установщика, сгенерированного MATLAB. Это расположено в for_redistributionпапка проекта развертывания.
Выполнение так автоматически устанавливает MATLAB Runtime от сети и помещает сгенерированные файлы JAR на ваш компьютер.
Вручную установите MATLAB Runtime и сгенерированные файлы JAR на вашу систему разработки.
Можно загрузить инсталлятор MATLAB Runtime с https://www.mathworks.com/products/compiler/mcr. Сгенерированные файлы JAR расположены в проекте развертывания MATLAB for_testing папка.
В папке, содержащей сгенерированные файлы JAR, создайте новый файл под названием getmagic.java.
Используя текстовый редактор, откройте getmagic.java.
Поместите следующее как первую линию в файле.
import com.mathworks.toolbox.javabuilder.*;
Этот оператор импортирует классы поддержки MATLAB.
Поместите следующую линию после первого оператора импорта.
import makesqr.*;
Этот оператор импортирует классы, сгенерированные компилятором.
Добавьте следующее определение класса.
class getmagic
{
}Этот класс имеет один основной метод, который вызывает сгенерированный класс.
Добавьте main() метод к приложению.
public static void main(String[] args)
{
} Добавьте следующий код в верхнюю часть main() метод.
MWNumericArray n = null; Object[] result = null; Class1 theMagic = null;
Это инициализирует переменные, используемые приложением.
n является экземпляром MWNumericArray MATLAB класс, который MATLAB использует в своем внутреннем формате данных.
result является типовым объектом Java, который содержит результаты вызова MATLAB.
theMagic является классом экземпляра, сгенерированным от функции MATLAB.
Добавьте следующий код после переменной инициализации.
if (args.length == 0)
{
System.out.println("Error: must input a positive integer");
return;
}
Это - простая проверка, чтобы гарантировать, что необходимый параметр командной строки был передан приложению.
Добавьте блок попытки/выгоды/наконец после проверки аргумента.
В try раздел блока попытки/выгоды/наконец, добавляет следующий код.
n = new MWNumericArray(Double.valueOf(args[0]), MWClassID.DOUBLE);
Код инстанцирует экземпляра MWNumericArray и заполняет, это с массивом 1 на 1, содержащим целое число, передало приложению на командной строке. Значение преобразовано в Double потому что это - самое прямое отображение между Java и MATLAB внутреннее представление данных.
После кода, инстанцирующего входного параметра, добавьте следующее, чтобы инстанцировать класса, сгенерированного из MATLAB.
theMagic = new Class1();
Конструктор для сгенерированного класса обрабатывает всю настройку, требуемую запустить MATLAB Runtime и заполнить его с необходимым кодом MATLAB.
Используя недавно инстанцированный объект, вызовите функцию MATLAB.
result = theMagic.makesqr(1, n); System.out.println(result[0]);
Добавьте следующий catch разделите с блоком попытки/выгоды/наконец, чтобы обработать любые исключения, которые могут быть выданы.
catch (Exception e)
{
System.out.println("Exception: " + e.toString());
}
Добавьте следующий finally разделите с блоком попытки/выгоды/наконец, чтобы очистить любые ресурсы.
finally
{
MWArray.disposeArray(n);
MWArray.disposeArray(result);
theMagic.dispose();
}
disposeArray() и dispose() методы очищают ресурсы, используемые сгенерированным кодом MATLAB.
Сохраните файл Java.
Завершенный файл Java должен напомнить следующее.
import com.mathworks.toolbox.javabuilder.*;
import makesqr.*;
class getmagic
{
public static void main(String[] args)
{
MWNumericArray n = null;
Object[] result = null;
Class1 theMagic = null;
if (args.length == 0)
{
System.out.println("Error: must input a positive integer");
return;
}
try
{
n = new MWNumericArray(Double.valueOf(args[0]),
MWClassID.DOUBLE);
theMagic = new Class1();
result = theMagic.makesqr(1, n);
System.out.println(result[0]);
}
catch (Exception e)
{
System.out.println("Exception: " + e.toString());
}
finally
{
MWArray.disposeArray(n);
MWArray.disposeArray(result);
theMagic.dispose();
}
}
}
Используйте командную строку системы, чтобы перейти к папке, где вы установили сгенерированный пакет Java и сохранили новый файл Java.
Скомпилируйте приложение Java с помощью javac.
javac -classpath "mcrroot\toolbox\javabuilder\jar\javabuilder.jar";
.\makesqr.jar .\getmagic.javaВведите javac команда на одной строке.
На платформах UNIX® используйте двоеточие (:) как разделитель пути к классу вместо точки с запятой (;).
mcrroot путь туда, где MATLAB Runtime установлен в вашей системе. Если вам установили MATLAB в вашей системе вместо этого, можно использовать путь к установке MATLAB.
От командной строки системы, запущенной приложение.
java -classpath .;"mcrroot\toolbox\javabuilder\jar\javabuilder.jar";
.\makesqr.jar getmagic 5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9Несомненно, необходимо будет поместить точку (.) в первом положении пути к классу. Если это не, вы получаете сообщение, утверждая, что Java не может загрузить класс.
Введите java команда на одной строке.
На платформах UNIX используйте двоеточие (:) как разделитель пути к классу вместо точки с запятой (;).
mcrroot путь туда, где MATLAB Runtime установлен в вашей системе. Если вам установили MATLAB в вашей системе вместо этого, можно использовать путь к установке MATLAB.
Следовать этому примеру:
Попытайтесь установить новое приложение на различном компьютере.
Попытайтесь создать инсталлятор для приложения.
Попытайтесь интегрировать пакет, который состоит из нескольких функций.