【问题标题】:Run matlab function in java class in absence of matlab environment在没有matlab环境的情况下在java类中运行matlab函数
【发布时间】:2017-01-11 07:39:37
【问题描述】:

我想在 java 应用程序中使用 matlab 函数。我通过 matlab 中的 deploytool 从我的函数创建 java 包。现在,我该如何使用这个包?只能在我的java项目中导入deploytool创建的jar文件并使用它的功能吗?

经过大量谷歌搜索,我使用了this toturial,但在最后一步,我收到错误“无法加载文件”。

我也读过MatlabControl,但是在这个解决方案中,我们应该在我们的系统中有matlab环境来运行java代码。但我将在可能根本没有 matlab 的系统中运行我的最终应用程序。

所以我需要一个解决方案,即使在没有 matlab 环境的情况下也可以在 java 类中运行 matlab 函数。

【问题讨论】:

    标签: java matlab


    【解决方案1】:

    终于解决了我的问题。逐步解决方法如下:

    1. 编写matlab函数:

      函数 y = makeqr(x)

      y = 魔法(x);

    2. 在matlab中使用deploytool,创建java包。

    3.在Eclipse中新建java应用并添加主类。导入 javabuilde.jar 和 makeqr.jar:

      import com.mathworks.toolbox.javabuilder.MWArray;
    
      import com.mathworks.toolbox.javabuilder.MWClassID;
    
      import com.mathworks.toolbox.javabuilder.MWNumericArray;
    
      import makesqr.Class1;
    

    和 main.java:

    public class main {
    
    public static void main(String[] args) {
    
          MWNumericArray n = null;
          Object[] result = null;
          Class1 theMagic = null;
    
          try
          {
             n = new MWNumericArray(Double.valueOf(5),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();
          }
    }
    

    }

    1. 将 javabuilder.jar 和 makeqr.jar 添加到您项目的 java 构建路径

    2. 运行它。

    Double.valueOf(3),定义我们函数的输入,输出如下:

     8     1     6
     3     5     7
     4     9     2
    

    【讨论】:

      【解决方案2】:

      我没有正确理解您的问题。您是否已经从 Matlab 代码编译了 jar 文件并且您正在尝试使用它,或者您处于教程的最后一步?

      如果您的答案是最新的情况,很可能您忘记了“.”。在类路径之前。 从您链接的教程中:

      您必须确保在类路径的第一个位置放置一个点 (.)。如果不是,您会收到一条消息,指出 Java 无法加载该类。

      同时检查 matlab 编译器路径(本教程中的“c:\Program Files\MATLAB\MATLAB Compiler Runtime\v82\toolbox\javabuilder\jar\javabuilder.jar”)是否适合您的系统。

      【讨论】:

      • 我在教程的最后一步。如何查看 matlab 编译器路径?
      • 这取决于:您使用的是 windows 还是 linux?您是否安装了 matlab 编译器运行时?在 varage 上应该与 matlab 安装的路径相同
      猜你喜欢
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 2016-10-21
      • 2020-06-21
      • 2014-04-05
      相关资源
      最近更新 更多