主要内容

MATLABコマンドウィンドウの出力をJavaにリダ@ @レクト

MATLABコマンドウィンドウへの出力

MATLAB®では,エラーメッセージと,セミコロンで終了していない関数の出力をMATLABコマンドウィンドウに表示します。java.io.StringWriterを使用して,この出力をJava®にリダ@ @レクトすることができます。MatlabEngine函数宏指令fevalAsyncevalevalAsyncの各メソッドは,出力ストリ,ムの使用による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にリダレクトするには,StringWriterevalメソッドで使用します。エラ,によりスロ,された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 ();}}

関連するトピック