从Java运行MATLAB函数
我在MATLAB中有一个.m文件,我想从Java调用一个字符串或Java中的任何解决方案。这听起来很简单,但由于某种原因,我无法完成工作。从Java运行MATLAB函数
我尝试这样做:
matlab -nosplash -wait -nodesktop -r myFunction
,但我不知道我是如何解析的答案,因为MATLAB打开它自己的命令行(在Windows)。
我使用这个,但它不返回任何东西。
Process p = Runtime.getRuntime().exec(commandToRun);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
也似乎每次我打电话给MATLAB打开一个单独的窗口,这是一个问题,因为我想运行这么多次。
诀窍是使用MatlabControl类http://www.cs.virginia.edu/~whitehouse/matlab/JavaMatlab.html。它使用起来非常简单,您可以完成您想要做的事情(以及更多)。
Jeff!抢!很高兴见到你们在这里。 – 2009-10-23 17:16:43
小世界,不是吗? – 2009-10-23 17:20:11
存在一个称为JaCoB(http://sourceforge.net/projects/jacob-project/)的良好Java-COM-Bridge,您可以使用它在后台自动启动Matlab作为COM服务器。然后,您可以按照Matlab帮助中的说明与Matlab COM接口进行交互。
尽管这是一个非常通用的接口,但它提供了足够的灵活性,可以轻松地对Matlab进行一些调用,就像您的情况一样。
只需下载JaCoB软件包,然后查看文档文件夹中的某些文档。 您还必须在您的路径中包含Jacob DLL。
也许'-logfile'命令选项可能有所帮助:http://stackoverflow.com/questions/1518072/suppress-start-message-of-matlab/1518165#1518165 – Amro 2009-10-22 16:28:32