В этом примере показано, как создать Java® приложение, которое использует несколько MATLAB® функции, чтобы анализировать сигнал и затем изобразить результат в виде графика.
В этом примере вы выполняете следующие шаги:
Используйте MATLAB Compiler SDK™, чтобы создать пакет, содержащий класс, который имеет закрытый метод, который автоматически инкапсулируется.
Доступ к функциям MATLAB в приложении Java, включая использование MWArray иерархия классов, чтобы представлять данные.
Создайте и запустите приложение.
spectralanalysis Приложениеspectralanalysis приложение анализирует сигнал и изображает результат в виде графика. Класс fourier выполняет быстрое преобразование Фурье (FFT) на массиве входных данных. Метод этого класса, computefft, возвращает результаты того БПФ как два выходных массива — массив точек частоты и спектральной плотности мощности.
Второй метод, plotfft, изображает возвращенные данные в виде графика. Эти два метода, computefft и plotfft, инкапсулируйте функции MATLAB.
| Функции MATLAB | computefft.mplotfft.m |
| Местоположение функции MATLAB | |
| Участок кода Java | |
Скопируйте SpectraExample папка, которая поставляется с MATLAB к вашей папке работы:
copyfile(fullfile(matlabroot,'toolbox','javabuilder','Examples','SpectraExample'),'SpectraExample')
В командной строке MATLAB перейдите к новому SpectraExample\SpectraDemoComp подпапка в вашей папке работы.
Исследуйте функции MATLAB computefft.m и plotfft.m.
Создайте пакет Java с приложением Library Compiler или compiler.build.javaPackage.
Используйте следующую информацию для своего проекта:
| Название проекта | spectralanalysis |
| ClassName | fourier |
| Файл, чтобы скомпилировать | plotfft.m |
Примечание
В этом примере, приложение, которое использует fourier класс не вызывает computefft непосредственно. computefft метод требуется только plotfft метод. Вы не должны вручную добавлять computefft функционируйте к пакету, когда компилятор автоматически включает его во время анализа зависимостей.
Например, если вы используете compiler.build.javaPackageВвод:
buildResults = compiler.build.javaPackage('plotfft.m', ... 'PackageName','spectralanalysis', ... 'ClassName','fourier');
Для получения дополнительной информации смотрите, что инструкции в Генерируют приложение Java Пакета и Сборки Java.
Запишите исходный код для приложения Java, это получает доступ к функциям MATLAB.
Пример приложения для этого примера находится в SpectraExample\SpectraDemoJavaApp\powerspect.java.
Программа делает следующее:
Создает входной массив со значениями, представляющими случайный сигнал двумя синусоидами на уровне 15 и 40 Гц, встроенных в нем
Создает MWNumericArray массив, который содержит данные
data = MWNumericArray.newInstance(dims, MWClassID.DOUBLE, MWComplexity.REAL);
Инстанцирует fourier объект
Вызывает plotfft метод, который вызывает computeftt и отображает данные на графике
Использует try- catch блокируйтесь, чтобы обработать исключения
Освобождает нативные ресурсы с помощью MWArray методы
В MATLAB перейдите к SpectraDemoJavaApp папка.
Скопируйте сгенерированный spectralanalysis.jar пакет в эту папку.
Если вы использовали compiler.build.javaPackageВвод:
copyfile(fullfile('..','SpectraDemoComp','spectralanalysisjavaPackage','spectralanalysis.jar'))
Если вы использовали Library Compiler, введите:
copyfile(fullfile('..','SpectraDemoComp','spectralanalysis','for_testing','spectralanalysis.jar'))
Откройте окно командной строки и перейдите к SpectraDemoJavaApp папка.
Скомпилируйте powerspect.java приложение с помощью javac.
На Windows®, выполните следующую команду:
javac -classpath "matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\spectralanalysis.jar powerspect.java
На UNIX®, выполните следующую команду:
javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./spectralanalysis.jar powerspect.java
Замените с путем к вашему MATLAB или папке установки MATLAB Runtime. Например, на Windows, путем может быть matlabrootC:\Program Files\MATLAB\R2021b.
Запустите powerspect приложение.
На Windows выполните следующую команду:
java -classpath .;"matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\spectralanalysis.jar powerspect
На UNIX выполните следующую команду:
java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./spectralanalysis.jar powerspect
Примечание
Если при запуске приложение на Mac 64-битная платформа, необходимо добавить -d64 отметьте в команде Java.
powerspect программа отображает следующий вывод:

libraryCompiler | compiler.build.javaPackage