このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
実行中のMATLABセッションへのJavaの接続
MATLABの検索と接続
ローカルマシンで実行中の共有MATLAB®セッションにJava®エンジンを接続することができます。共有MATLABセッションに接続するには,以下を実行します。
MATLABを共有エンジンセッションとして起動するか,
matlab.engine.shareEngine
を使用して実行中のMATLABプロセスを共有にします。MatlabEngine.findMatlab
またはMatlabEngine.findMatlabAsync
静的メソッドを使用して,MATLAB共有セッションの名前を検索します。共有MATLABセッションの名前が含まれる文字列を
MatlabEngine.connectMatlab
またはMatlabEngine.connectMatlabAsync
静的メソッドに渡します。これらのメソッドにより,Javaエンジンが共有セッションに接続されます。
MatlabEngine.connectMatlab
やMatlabEngine.connectMatlabAsync
を呼び出す際に共有MATLABセッションの名前を指定しない場合,エンジンは最初に作成されたMATLABセッションを使用します。使用可能な共有MATLABセッションがない場合,エンジンは共有MATLABセッションを作成し,このセッションに接続します。
これらのメソッドについては,com.mathworks.engine.MatlabEngine
を参照してください。
MATLABへの同期的な接続
MATLABからmatlab.engine.shareEngine
を呼び出して,MATLABセッションを共有セッションに変換します。
matlab.engine.shareEngine
セッションを検索し,Javaから同期的に接続します。
进口com.mathworks.engine。*;public class javaFindConnect {public static void main(String[] args) throws Exception {String[] engines = MatlabEngine.findMatlab();MatlabEngine eng = MatlabEngine. connectmatlab(引擎[0]);//执行命令在共享的MATLAB会话engineer .eval("plot(1:10);打印(‘myPlot’,‘-djpeg’)”);eng.close ();}}
MATLABへの非同期的な接続
MATLABからmatlab.engine.shareEngine
を呼び出して,MATLABセッションを共有セッションに変換します。
matlab.engine.shareEngine
セッションを検索し,Javaから非同期的に接続します。
进口com.mathworks.engine。*;进口java.util.concurrent.Future;public class javafindconnectasasync {public static void main(String[] args) throws Exception {FutureeFuture = MatlabEngine.findMatlabAsync();String[]引擎= eFuture.get();未来 engFuture = MatlabEngine. connectmatlabasync(引擎[0]);//在其他线程上工作MatlabEngine eng = engFuture.get();//在共享的MATLAB会话上执行命令Future vFuture = eng.evalAsync("plot(1:10);打印(‘myPlot’,‘-djpeg’)”);eng.close ();}}
共有セッションの名前の指定
MATLAB関数matlab.engine.shareEngine
の実行時に,共有MATLABセッションの名前を指定することができます。これにより,MatlabEngine.findMatlab
やMatlabEngine.findMatlabAsync
を使用して名前を検索する必要がなくなります。
たとえば,MATLABを起動して,共有セッションにmyMatlabEngine
という名前を指定します。
matlab - r”matlab.engine.shareEngine (myMatlabEngine)”
Javaからこの名前の付いたMATLABセッションに接続します。
进口com.mathworks.engine。*;public class javaNameConnect {public static void main(String[] args) throws Exception {String[] myEngine = {"myMatlabEngine"};MatlabEngine eng = MatlabEngine. connectmatlab (myEngine[0]);//执行命令在共享的MATLAB会话engineer .eval("plot(1:10);打印(‘myPlot’,‘-djpeg’)”);eng.close ();}}