我试图找出一种从java运行.m文件的方法。
运行.m文件时,它会输出我需要检索的文本文件。我已经有了在java中检索文本文件的代码,但我仍然无法弄清楚如何从java启动和运行.m文件,以便它输出我需要的文件。有什么想法吗?
答案 0 :(得分:1)
你可以启动一个Java进程并运行matlab ..." matlab -r" yourMfile"
答案 1 :(得分:1)
以下是您正在寻找的代码:
import matlabcontrol.*;
public class matlabconnect
{
public static void main(String[] args)
throws MatlabConnectionException, MatlabInvocationException
{
// create proxy
MatlabProxyFactoryOptions options =
new MatlabProxyFactoryOptions.Builder()
.setUsePreviouslyControlledSession(true)
.build();
MatlabProxyFactory factory = new MatlabProxyFactory(options);
MatlabProxy proxy = factory.getProxy();
// call builtin function
proxy.eval("disp('hello world')");
// call user-defined function (must be on the path)
proxy.feval("matlab_file_name");
// close connection
proxy.disconnect();
}
我测试了这个程序。它运作良好。不要忘记将matlab文件放在默认路径中。
答案 2 :(得分:1)
对于matlab / JAVA,已经有了一些较新的api
<dependency>
<groupId>com.diffplug.matsim</groupId>
<artifactId>matconsolectl</artifactId>
<version>4.5.0</version>
</dependency>
和
// create proxy
MatlabProxyFactoryOptions.Builder builder = new MatlabProxyFactoryOptions.Builder();
MatlabProxyFactory factory = new MatlabProxyFactory(builder.build());
// get the proxy
MatlabProxy proxy = factory.getProxy();
// call user-defined function (must be on the path)
proxy.eval("addpath('"...PATH..."')");
proxy.feval("function");
// close connection
proxy.disconnect();
答案 3 :(得分:0)
我认为MatlabControl就是你想要的。这一切都在这里描述:http://www.cs.virginia.edu/~whitehouse/matlab/JavaMatlab.html
实质上,请致电
MatlabControl.eval(&#34; yourfile.m&#34);