重定向MATLAB命令窗口输出Java
输出MATLAB命令窗口
MATLAB®显示错误消息和函数的输出与分号终止MATLAB命令窗口。您可以将这个输出重定向到Java®使用一个java.io.StringWriter
。的MatlabEngine
函数宏指令
,fevalAsync
,eval
,evalAsync
MATLAB方法金宝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,使用StringWriter
与eval
方法。抓住了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 ();}}