MATLABコマンドウィンドウの出力をJavaにリダ@ @レクト
MATLABコマンドウィンドウへの出力
MATLAB®では,エラーメッセージと,セミコロンで終了していない関数の出力をMATLABコマンドウィンドウに表示します。java.io.StringWriter
を使用して,この出力をJava®にリダ@ @レクトすることができます。MatlabEngine
の函数宏指令
、fevalAsync
、eval
、evalAsync
の各メソッドは,出力ストリ,ムの使用によるmatlab出力のリダ,レクトをサポ,トしています。
MATLAB出力のリダ@ @レクト
MATLABの谁
コマンドは,現在のワークスペース変数に関する情報をMATLABコマンドウィンドウに表示します。StringWriter
を使用して,この出力をJavaにストリ,ミングします。
进口com.mathworks.engine。*;进口. io . *;public class RedirectOutput {public static void main(String[] args)抛出异常{MatlabEngine engine = MatlabEngine. startmatlab ();//计算创建变量的表达式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('Hello ")↑错误:字符向量没有正确终止。
このエラメッセジをJavaにリダレクトするには,StringWriter
をeval
メソッドで使用します。エラ,によりスロ,されたMatlatSyntaxException
の例外を取得し,MATLABエラ,メッセ,ジをJavaに書き込みます。
进口com.mathworks.engine。*;进口. io . *;public class javaRedirectOut {public static void main(String[] args)抛出异常{MatlabEngine engine = MatlabEngine. startmatlab ();StringWriter writer = new StringWriter();try {eng.eval("disp('Hello ")", null, writer);} catch (MatlabSyntaxException e){系统。println("错误重定向到Java:);System.out.println (writer.toString ());} writer.close ();eng.close ();}}