Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有matlab环境的情况下在java类中运行matlab函数_Java_Matlab - Fatal编程技术网

在没有matlab环境的情况下在java类中运行matlab函数

在没有matlab环境的情况下在java类中运行matlab函数,java,matlab,Java,Matlab,我想在java应用程序中使用matlab函数。我使用matlab中的deploytool从函数中创建java包。现在,我如何使用这个软件包?只能在我的java项目中导入deploytool创建的jar文件并使用它的函数吗 在大量的谷歌搜索之后,我使用了,但在最后一步,我得到了错误“无法加载文件” 我还读了有关MatlabControl的内容,但是在这个解决方案中,我们应该在系统中使用matlab环境来运行java代码。但我将在可能根本没有matlab的系统中运行我的最终应用程序 所以我需要一个在

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

在大量的谷歌搜索之后,我使用了,但在最后一步,我得到了错误“无法加载文件”

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


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

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

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

必须确保在类路径的第一个位置放置一个点(.)。如果没有,您将收到一条消息,说明Java无法加载该类


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

最后,我解决了我的问题。逐步解决方案如下:

 8     1     6
 3     5     7
 4     9     2
  • 编写matlab函数:

    函数y=makesqr(x)

    y=魔法(x)

  • 在matlab中使用deploytool并创建java包

  • 3.在Eclipse中创建新的java应用程序并添加主类。导入javabuilde.jar和makesqr.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();
          }
    }
    
    }

  • 将javabuilder.jar和makesqr.jar添加到项目的java构建路径中

  • 运行它

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

     8     1     6
     3     5     7
     4     9     2
    

    我已进入教程的最后一步。如何检查matlab编译器路径?这取决于:您是在windows还是linux上?您是否安装了matlab编译器运行时?avarage上的路径应与matlab安装上的路径相同