主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

実行中のMATLABセッションへのJavaの接続

MATLABの検索と接続

ローカルマシンで実行中の共有MATLAB®セッションにJava®エンジンを接続することができます。共有MATLABセッションに接続するには,以下を実行します。

  • MATLABを共有エンジンセッションとして起動するか,matlab.engine.shareEngineを使用して実行中のMATLABプロセスを共有にします。

  • MatlabEngine.findMatlabまたはMatlabEngine.findMatlabAsync静的メソッドを使用して,MATLAB共有セッションの名前を検索します。

  • 共有MATLABセッションの名前が含まれる文字列をMatlabEngine.connectMatlabまたはMatlabEngine.connectMatlabAsync静的メソッドに渡します。これらのメソッドにより,Javaエンジンが共有セッションに接続されます。

MatlabEngine.connectMatlabMatlabEngine.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 {Future eFuture = 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.findMatlabMatlabEngine.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 ();}}

関連するトピック