主要内容

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

MATLAB 应用程序中使用 Java

概述

此示例向您说明如何创建一个调用 Java® 类的 MATLAB® 包装器函数的 MATLAB 应用程序。

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

  1. 使用 MATLAB Compiler SDK™ 创建一个使用 MATLAB 包装器函数访问 MATLAB 类的包。

  2. 在 MATLAB 应用程序中调用 Java 包装器函数。

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

过程

  1. 在 MATLAB 中,检查您想要打包的 MATLAB 代码。对于此示例,使用以下代码创建一个名为 MyMATLABClass.m 的 MATLAB 类:

    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
  2. 为该类创建四个 MATLAB 包装器函数:CreateMyMATLABClass.mSetInput.mCompute.mGetResult.m

    CreateMyMATLABClass.m.  

    function instance = CreateMyMATLABClass()
        instance = MyMATLABClass();
    end

    SetInput.m.  

    function SetInput(myclass, input_value)
        myclass.setInput(input_value);
    end

    Compute.m.  

    function status= Compute(myclass)
        status = myclass.compute();
    end

    GetResult.m.  

    function result = GetResult(myclass)
        result = myclass.getResult();
    end

  3. 使用以下信息构建 Java 包,可通过 Java 包编译器应用或 compiler.build.javaPackage 进行操作:

    字段
    Java 包名称MyMATLABClass1
    类名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 文件添加到包中,因为编译器会在依赖关系分析期间自动将其包含进去。

  4. 导航到包含生成的 MyMATLABClass1.jar 包的文件夹。如果您使用了 Java 包编译器,该包位于 build 文件夹中。

  5. 为访问 MATLAB 函数的应用程序编写源代码。此示例的代码如下所示。

     javadriver.java

  6. 打开命令提示符窗口并导航到包含 javadriver.javaMyMATLABClass.jar 文件夹。

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

    matlabroot 替换为 MATLAB 或 MATLAB Runtime 安装文件夹的路径。例如,在 Linux® 上,路径可能为 /usr/local/MATLAB/R2025a

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

javadriver 程序显示以下输出:

--- USE: Constructors --- 
1 
2.2361 
--- Done. --- 

另请参阅

|

主题