如何通过java和matlab控件运行.m(matlab)文件?

如何通过java和matlab控件运行.m(matlab)文件?,java,matlab,execution,Java,Matlab,Execution,我有2.m文件。一个是函数,另一个(read.m)读取函数,然后将结果导出到excel文件中。我有一个java程序,可以对.m文件进行一些更改。更改之后,我希望自动执行/运行.m文件。我已经下载了matlabcontrol.jar,我正在寻找一种方法来使用它调用并运行read.m文件,然后读取函数。 有人能帮我写代码吗?谢谢 我已经尝试过这个代码,但它不起作用 public static void tomatlab() throws MatlabConnectionException, Matl

我有2.m文件。一个是函数,另一个(read.m)读取函数,然后将结果导出到excel文件中。我有一个java程序,可以对.m文件进行一些更改。更改之后,我希望自动执行/运行.m文件。我已经下载了matlabcontrol.jar,我正在寻找一种方法来使用它调用并运行read.m文件,然后读取函数。 有人能帮我写代码吗?谢谢

我已经尝试过这个代码,但它不起作用

public static void tomatlab() throws MatlabConnectionException, MatlabInvocationException {


        MatlabProxyFactoryOptions options =
            new MatlabProxyFactoryOptions.Builder()
                .setUsePreviouslyControlledSession(true)
                .build();
        MatlabProxyFactory factory = new MatlabProxyFactory(options);
        MatlabProxy proxy = factory.getProxy();


        proxy.eval("addpath('C:\\path_to_read.m')");
        proxy.feval("read");
        proxy.eval("rmpath('C:\\path_to_read.m')");

        // close connection
        proxy.disconnect();

    }
基于此,从这个API开始似乎非常简单

路径操作可能有点棘手,但我会尝试将整个脚本加载到字符串中,并将其传递给
eval
(请注意,我以前没有使用此特定Matlab库的经验)。这可以很容易地完成(例如,通过连接
文件.readAllLines()


希望这能有所帮助。

你能说得更具体一点什么“不起作用”@bdecaf如果它不能正确运行read.m文件。它在随机目标文件夹中创建输出(excel文件)。我觉得Java部分不错,但read.m需要调试。你能发布一个显示问题的简单版本吗?我需要将整个脚本传递给eval吗?难道没有一种方法可以只执行一个.m文件吗?正如我所说的,我不知道API,但是在浏览了Javadocs之后,我还没有找到任何方法来执行它。也许有一个函数可以实现这一点,尽管我编写的解决方法可能适合您。也许你应该询问一下项目的讨论列表。