主要内容

重定向MATLAB命令窗口输出Java

输出MATLAB命令窗口

MATLAB®显示错误消息和函数的输出与分号终止MATLAB命令窗口。您可以将这个输出重定向到Java®使用一个java.io.StringWriter。的MatlabEngine函数宏指令,fevalAsync,eval,evalAsyncMATLAB方法金宝app支持使用输出流重定向输出。

重定向MATLAB输出

MATLAB命令显示当前工作空间变量的信息在MATLAB命令窗口。使用一个StringWriter流输出到Java。

进口com.mathworks.engine。*;进口. io . *;公开课RedirectOutput{公共静态空main (String [] args)抛出异常{MatlabEngine引擎= MatlabEngine.startMatlab ();/ /计算表达式,eng创建变量。evalAsync (“(X, Y) = meshgrid (2: .2:2);”);eng。evalAsync("Z = X.*exp(-X.^2 - Y.^2);"); // Get the output of the whos command StringWriter writer = new StringWriter(); eng.eval("whos", writer, null); System.out.println(writer.toString()); writer.close(); eng.close(); } }

重定向MATLAB错误消息Java

这个示例代码试图评估的MATLAB语句语法错误(不平衡的单引号)。进入这个MATLAB语句导致一个错误:

disp (“你好”)

MATLAB命令窗口中返回这个错误消息:

disp(“你好”)↑错误:特征向量不能正常终止。

这个错误消息重定向到Java,使用StringWritereval方法。抓住了MatlatSyntaxException异常抛出的错误和Java编写MATLAB的错误消息。

进口com.mathworks.engine。*;进口. io . *;公开课javaRedirectOut{公共静态空main (String [] args)抛出异常{MatlabEngine引擎= MatlabEngine.startMatlab ();StringWriter作家= new StringWriter ();{eng.eval (“disp(“你好”)",null,作家);}(MatlabSyntaxException e) {system . out。println(“错误重定向到Java:”);System.out.println (writer.toString ());}writer.close ();eng.close ();}}

相关的话题