主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

创建使用多个 MATLAB 函数的 Java 应用程序

此示例说明如何创建一个使用多个 Java® 函数来分析信号然后绘制结果图形的 MATLAB® 应用程序。

在此示例中,您执行以下步骤:

  1. 使用 MATLAB Compiler SDK™ 创建一个包,其中包含具有自动封装的私有方法的类。

  2. 在 MATLAB 应用程序中访问 Java 函数,包括使用 MWArray 类层次结构来表示数据。

  3. 构建并运行应用程序。

spectralanalysis 应用程序

spectralanalysis 应用程序分析信号并绘制结果图形。fourier 类对输入数据数组执行快速傅里叶变换 (FFT)。此类的方法 computefft 将该 FFT 的结果作为两个输出数组返回 - 频率点数数组和功率谱密度。

第二种方法 plotfft 绘制返回的数据图形。这两个方法 computefftplotfft 封装了 MATLAB 函数。

文件

MATLAB 函数computefft.m
plotfft.m
MATLAB 函数位置matlabroot\toolbox\javabuilder\Examples\SpectraExample\SpectraDemoComp
Java 代码位置matlabroot\toolbox\javabuilder\Examples\SpectraExample\SpectraDemoJavaApp\powerspect.java

过程

  1. 将 MATLAB 附带的 SpectraExample 文件夹复制到您的工作文件夹:

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

    在 MATLAB 命令提示符下,导航到工作文件夹中的新 SpectraExample\SpectraDemoComp 子文件夹。

  2. 检查 MATLAB 函数 computefft.mplotfft.m

     computefft.m

     plotfft.m

  3. 使用 Java 包编译器compiler.build.javaPackage 构建 Java 包。

    将以下信息用于您的工程:

    工程名称spectralanalysis
    类名fourier
    要编译的文件plotfft.m

    注意

    在这个示例中,使用 fourier 类的应用程序不会直接调用 computefft。只有 computefft 方法才需要 plotfft 方法。您不需要手动将 computefft 函数添加到包中,因为编译器会在依赖关系分析期间自动将其包含进去。

    例如,如果您使用的是 compiler.build.javaPackage,请输入:

    buildResults = compiler.build.javaPackage('plotfft.m', ...
    'PackageName','spectralanalysis', ...
    'ClassName','fourier');

    有关详细信息,请参阅生成 Java 包并编译 Java 应用程序中的说明。

  4. 为访问 MATLAB 函数的 Java 应用程序编写源代码。

    此示例的示例应用程序位于 SpectraExample\SpectraDemoJavaApp\powerspect.java 中。

     powerspect.java

    程序执行以下操作:

    • 构造一个输入数组,其值表示一个随机信号,其中包含两个频率分别为 15 Hz 和 40 Hz 的正弦波

    • 创建包含数据的 MWNumericArray 数组

      data = MWNumericArray.newInstance(dims, MWClassID.DOUBLE, MWComplexity.REAL);
      
    • 实例化 fourier 对象

    • 调用 plotfft 方法,该方法调用 computeftt 并绘制数据

    • 使用 try-catch 代码块处理异常

    • 使用 MWArray 方法释放本机资源

  5. 在 MATLAB 中,导航到 SpectraDemoJavaApp 文件夹。

  6. 将生成的 spectralanalysis.jar 包复制到此文件夹中。例如,如果您使用了 compiler.build.javaPackage,请输入:

    copyfile(fullfile('..','SpectraDemoComp','spectralanalysisjavaPackage','spectralanalysis.jar'))
  7. 打开命令提示符窗口并导航到 SpectraDemoJavaApp 文件夹。

  8. 使用 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

    matlabroot 替换为 MATLAB 或 MATLAB Runtime 安装文件夹的路径。例如,在 Windows 上,路径可能为 C:\Program Files\MATLAB\R2025a

  9. 运行 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 位平台上运行该应用程序,则必须在 Java 命令中添加 -d64 标志。

    powerspect 程序显示以下输出:

    Time domain signal plotted above the power spectral density plot that reveals signals at 16 and 40 Hz

另请参阅

|

主题