Интегрируйте простую функцию MATLAB в приложение Java

В этом примере показано, как вызвать MATLAB® метод, который генерирует магический квадрат на Java® приложение.

Файлы

Местоположение функции MATLABmatlabroot\toolbox\javabuilder\Examples\MagicSquareExample\MagicDemoComp\makesqr.m
Участок кода Javamatlabroot\toolbox\javabuilder\Examples\MagicSquareExample\MagicDemoJavaApp\getmagic.java

Процедура

  1. Скопируйте MagicSquareExample папка, которая поставляется с MATLAB к вашей папке работы:

    copyfile(fullfile(matlabroot,'toolbox','javabuilder','Examples','MagicSquareExample'))

    В командной строке MATLAB перейдите к новому MagicSquareExample\MagicDemoComp подпапка в вашей папке работы.

  2. Исследуйте makesqr.m функция.

    function y = makesqr(x)
    y = magic(x);
    disp(y);

    В командной строке MATLAB введите makesqr(5).

    Выход является матрицей 5 на 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
  3. Создайте пакет Java, который инкапсулирует makesqr.m при помощи приложения Library Compiler или compiler.build.javaPackage.

    Используйте следующую информацию для своего проекта:

    PackageNamemagicsquare
    ClassName magic
    Файл, чтобы скомпилироватьmakesqr.m

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

    buildResults = compiler.build.javaPackage('makesqr.m', ...
        'PackageName','magicsquare', ...
        'ClassName','magic');

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

  4. Запишите исходный код для приложения Java, это получает доступ к функции MATLAB.

    Пример приложения для этого примера находится в MagicSquareExample\MagicDemoJavaApp\getmagic.java.

     getmagic.java

    Программа делает следующее:

    • Создает MWNumericArray массив, чтобы сохранить входные данные

    • Инстанцирует magic объект

    • Вызывает makesqr метод, где первый параметр задает количество выходных аргументов и следующих параметров, передается функции в порядке как входные параметры

    • Использует try- catch блокируйтесь, чтобы обработать исключения

    • Освобождает нативные ресурсы с помощью MWArray методы

  5. В MATLAB перейдите к MagicDemoJavaApp папка.

  6. Скопируйте сгенерированный magicsquare.jar пакет в эту папку.

    • Если вы использовали compiler.build.javaPackageВвод:

      copyfile(fullfile('..','MagicDemoComp','magicsquarejavaPackage','magisquare.jar'))
    • Если вы использовали Library Compiler, введите:

      copyfile(fullfile('..','MagicDemoComp','magicsquare','for_testing','magicsquare.jar'))
  7. В системном командном окне перейдите к PlotDemoJavaApp папка.

  8. Скомпилируйте использование приложения Java javac.

    • На Windows®, выполните эту команду:

      javac -classpath "matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\magicsquare.jar getmagic.java
    • На UNIX®, выполните эту команду:

      javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./magicsquare.jar getmagic.java

    Замените matlabroot с путем к вашему MATLAB или папке установки MATLAB Runtime. Например, на Windows, путем может быть C:\Program Files\MATLAB\R2021b.

    Для получения дополнительной информации смотрите, Скомпилировали и запустили MATLAB Сгенерированное приложение Java.

  9. От системной командной строки, запущенной приложение.

    • На Windows введите:

      java -classpath .;"matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\makesqr.jar getmagic 5
    • На UNIX введите:

      java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./makesqr.jar getmagic 5

    Приложение выводит магический квадрат 5 на 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
  10. Следовать этому примеру:

    • Попытайтесь запустить сгенерированное приложение на различном компьютере.

    • Попытайтесь создать инсталлятор для использования пакета compiler.package.installer.

    • Попытайтесь интегрировать пакет, который состоит из нескольких функций.

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

| | | |

Похожие темы