com.mathworks.engine.MatlabEngine
MATLAB を計算エンジンとして使用する Java クラス
説明
com.mathworks.engine.MatlabEngine
クラスは Java® の計算エンジンとして MATLAB® プロセスを使用します。このクラスは Java 言語と MATLAB の間のインターフェイスを提供します。これにより、MATLAB の関数とステートメントを Java から評価できるようになります。
作成
MatlabEngine
クラスは、MATLAB を起動するための静的メソッドと共有 MATLAB セッションに同期的または非同期的に接続するための静的メソッドを提供します。このクラスはこれらの静的メソッドでのみインスタンス化できます。
startMatlab — MATLAB を同期的に起動する。
connectMatlab — 共有 MATLAB セッションに同期的に接続する。
startMatlabAsync — MATLAB を非同期的に起動する。
connectMatlabAsync — 共有 MATLAB セッションに非同期的に接続する。
サポートされない起動オプション
エンジンは次の MATLAB 起動オプションをサポートしていません。
-h
-help
-?
-n
-e
-softwareopengl
-logfile
MATLAB の起動オプションの詳細については、よく使われる起動オプションを参照してください。
メソッドの概要
静的メソッド
MATLAB を同期的に起動します。 | |
MATLAB を非同期的に起動します。 | |
ローカル マシン上のすべての共有 MATLAB セッションを同期的に検索します。 | |
ローカル マシン上のすべての共有 MATLAB セッションを非同期的に検索します。 | |
ローカル マシンの共有 MATLAB セッションに同期的に接続します。 | |
ローカル マシンの共有 MATLAB セッションに非同期的に接続します。 | |
MATLAB 環境からの呼び出し時に現在の MATLAB セッションに接続します。 |
メンバー変数
NULL_WRITER | MATLAB コマンド ウィンドウの内容を無視するライターを使用します。 |
メンバー関数
入力引数をもつ MATLAB 関数を同期的に評価します。 | |
入力引数をもつ MATLAB 関数を非同期的に評価します。 | |
MATLAB ステートメントを文字列として同期的に評価します。 | |
MATLAB ステートメントを文字列として非同期的に評価します。 | |
MATLAB ベース ワークスペースから変数を同期的に取得します。 | |
MATLAB ベース ワークスペースから変数を非同期的に取得します。 | |
MATLAB ベース ワークスペースに変数を同期的に入れます。 | |
MATLAB ベース ワークスペースに変数を非同期的に入れます。 | |
現在の MATLAB セッションから同期的に切断します。 | |
現在の MATLAB セッションから非同期的に切断します。 | |
現在の MATLAB セッションのシャットダウンを同期的に強制実行します。 | |
現在の MATLAB セッションを、終了まで待たず非同期的に強制シャットダウンします。 | |
現在の MATLAB セッションを切断または終了します。 |
メソッドの詳細
startMatlab
static MatlabEngine startMatlab(String[] options)
static MatlabEngine startMatlab()
MATLAB を同期的に起動します。
| MATLAB エンジンを起動するために使用する起動オプション。複数の起動オプションを指定できます。エンジンはサポートされない起動オプションに記載されているオプションを除くすべての MATLAB 起動オプションをサポートしています。オプションのリストについては、プラットフォーム固有の |
MatlabEngine
のインスタンス
| MATLAB が起動しません。 |
String[] options = {"-noFigureWindows", "-r", "cd H:"}; MatlabEngine eng = MatlabEngine.startMatlab(options);
startMatlabAsync
static Future<MatlabEngine> startMatlabAsync(String[] options)
static Future<MatlabEngine> startMatlabAsync()
MATLAB を非同期的に起動します。MATLAB が起動してからは、メソッドのキャンセルはできなくなります。
| MATLAB エンジンを起動するために使用する起動オプション。複数の起動オプションを指定できます。エンジンはサポートされない起動オプションに記載されているオプションを除くすべての MATLAB 起動オプションをサポートしています。オプションのリストについては、プラットフォーム固有の |
Future<MatlabEngine>
のインスタンス
Future<MatlabEngine> future = MatlabEngine.startMatlabAsync();
findMatlab
static String[] findMatlab()
ローカル マシン上のすべての共有 MATLAB セッションを同期的に検索します。
ローカル マシン上のすべての共有 MATLAB セッション名の配列。ローカル マシンに使用可能な共有 MATLAB セッションがない場合は、空のベクトル。
| MATLAB セッションの検索が失敗しました。 |
String[] engines = MatlabEngine.findMatlab();
findMatlabAsync
static Future<String[]> findMatlabAsync()
ローカル マシン上のすべての共有 MATLAB セッションを非同期的に検索します。
Future<String[]>
のインスタンス
Future<String[]> future = MatlabEngine.findMatlabAsync();
connectMatlab
static MatlabEngine connectMatlab(String name)
static MatlabEngine connectMatlab()
ローカル マシンの共有 MATLAB セッションに同期的に接続します。
共有 MATLAB セッションの名前を指定してもエンジンがその名前のセッションを見つけられない場合、エンジンは例外をスローします。
名前を指定せず、使用可能な共有 MATLAB セッションがない場合、エンジンは既定のオプションを使用して新しい共有 MATLAB セッションを開始します。
名前を指定せず、使用可能な共有 MATLAB セッションが存在する場合、エンジンは使用可能な最初のセッションに接続します。
MATLAB 環境からの呼び出し時に現在の MATLAB セッションに接続するには、代わりに getCurrentMatlab
を使用します。
| 共有 MATLAB セッションの名前。findMatlabを使用して、共有 MATLAB セッションの名前を取得します。 |
MatlabEngine
のインスタンス
| MATLAB の起動または接続が失敗しました。 |
MatlabEngine engine = MatlabEngine.connectMatlab();
connectMatlabAsync
static Future<MatlabEngine> connectMatlabAsync(String name)
static Future<MatlabEngine> connectMatlabAsync
ローカル マシンの共有 MATLAB セッションに非同期的に接続します。動作は connectMatlab
と同じですが、メカニズムは非同期です。MATLAB への接続が確立されてからは、メソッドのキャンセルはできなくなります。
| 共有 MATLAB セッションの名前。 |
Future<MatlabEngine>
のインスタンス
Future<MatlabEngine> future = MatlabEngine.connectMatlabAsync();
getCurrentMatlab
static MatlabEngine getCurrentMatlab()
R2021b 以降では、MATLAB 環境からの呼び出し時に現在の MATLAB セッションに接続します。
エンジン アプリケーションからの呼び出し時に MATLAB セッションに接続するには、代わりに connectMatlab
を使用します。
MatlabEngine
のインスタンス
| ユーザー スレッドからの呼び出しはサポートされていません。 |
MatlabEngine engine = MatlabEngine.getCurrentMatlab();
feval
<T> T feval(int nlhs, String func, Writer output, Writer error, Object… args)
<T> T feval(int nlhs, String func, Object… args)
<T> T feval(String func, Writer output, Writer error, Object… args)
<T> T feval(String func, Object… args)
入力引数をもつ MATLAB 関数を同期的に評価します。
| 評価する MATLAB 関数またはスクリプトの名前。 |
| 予期される出力の数。既定値は 1 です。
|
| MATLAB 関数からの標準出力を格納するために使用するストリーム。ライターを指定しない場合、出力はコマンド ウィンドウまたはターミナルに書き込まれます。MATLAB コマンド ウィンドウからの出力を無視するには、 |
| MATLAB 関数からの標準エラーを格納するために使用するストリーム。ライターを指定しない場合、エラー メッセージはコマンド ウィンドウまたはターミナルに書き込まれます。MATLAB コマンド ウィンドウからのエラー メッセージを無視するには、 |
| MATLAB 関数に渡す引数。 |
MATLAB 関数の実行結果
| MATLAB 関数の評価がキャンセルされました。 |
| MATLAB 関数の評価が中断されました。 |
| MATLAB セッションを使用できません。 |
| 関数に MATLAB ランタイム エラーがあります。 |
| サポートされていないデータ型があります。 |
| MATLAB 関数に構文エラーが存在します。 |
double result = engine.feval("sqrt", 4);
fevalAsync
<T> Future<T> fevalAsync(int nlhs, String func, Writer output, Writer error, Object… args)
<T> Future<T> fevalAsync(int nlhs, String func, Object… args)
<T> Future<T> fevalAsync(String func, Writer output, Writer error, Object… args)
<T> Future<T> fevalAsync(String func, Object… args)
入力引数をもつ MATLAB 関数を非同期的に評価します。
| 評価する MATLAB 関数またはスクリプトの名前。 |
| 予期される出力の数。既定値は
|
| MATLAB 関数からの標準出力を格納するために使用するストリーム。ライターを指定しない場合、出力はコマンド ウィンドウまたはターミナルに書き込まれます。MATLAB コマンド ウィンドウからの出力を無視するには、 |
| MATLAB 関数からの標準エラーを格納するために使用するストリーム。ライターを指定しない場合、エラー メッセージはコマンド ウィンドウまたはターミナルに書き込まれます。MATLAB コマンド ウィンドウからのエラー メッセージを無視するには、 |
| MATLAB 関数に渡す引数。 |
Future<T>
のインスタンス
| MATLAB セッションを使用できません。 |
Future<Double> future = engine.fevalAsync("sqrt", 4);
eval
void eval(String command, Writer output, Writer error)
void eval(String command)
MATLAB ステートメントを文字列として同期的に評価します。
| 評価する MATLAB ステートメント。 |
| MATLAB ステートメントからの標準出力を格納するために使用するストリーム。ライターを指定しない場合、出力はコマンド ウィンドウまたはターミナルに書き込まれます。MATLAB コマンド ウィンドウからの出力を無視するには、 |
| MATLAB ステートメントからの標準エラーを格納するために使用するストリーム。ライターを指定しない場合、エラー メッセージはコマンド ウィンドウまたはターミナルに書き込まれます。MATLAB コマンド ウィンドウからのエラー メッセージを無視するには、 |
| MATLAB 関数の評価がキャンセルされました。 |
| MATLAB 関数の評価が中断されました。 |
| MATLAB セッションを使用できません。 |
| 実行時に MATLAB ステートメントでエラーが発生しました。 |
| MATLAB ステートメントに構文エラーがあります。 |
engine.eval("result = sqrt(4)");
evalAsync
Future<Void> evalAsync(String command, Writer output, Writer error)
Future<Void> evalAsync(String command)
MATLAB ステートメントを文字列として非同期的に評価します。
| 評価する MATLAB ステートメント。 |
| MATLAB ステートメントからの標準出力を格納するために使用するストリーム。ライターを指定しない場合、出力はコマンド ウィンドウまたはターミナルに書き込まれます。MATLAB コマンド ウィンドウからの出力を無視するには、 |
| MATLAB ステートメントからの標準エラーを格納するために使用するストリーム。ライターを指定しない場合、エラー メッセージはコマンド ウィンドウまたはターミナルに書き込まれます。MATLAB コマンド ウィンドウからのエラー メッセージを無視するには、 |
Future<Void>
のインスタンス
| MATLAB セッションを使用できません。 |
Future<Void> future = engine.evalAsync("sqrt(4)");
getVariable
<T> T getVariable(String varName)
MATLAB ベース ワークスペースから変数を同期的に取得します。
| MATLAB ベース ワークスペース内の変数の名前。 |
MATLAB ベース ワークスペースから渡される変数
| この関数の評価がキャンセルされました。 |
| この関数の評価が中断されました。 |
| MATLAB セッションを使用できません。 |
double myVar = engine.getVariable("myVar");
getVariableAsync
<T> Future<T> getVariableAsync(String varName)
MATLAB ベース ワークスペースから変数を非同期的に取得します。
| MATLAB ベース ワークスペース内の変数の名前。 |
Future<T>
のインスタンス
| MATLAB セッションを使用できません。 |
Future<Double> future = engine.getVariableAsync("myVar");
putVariable
void putVariable(String varName, T varData)
MATLAB ベース ワークスペースに変数を同期的に入れます。
| MATLAB ベース ワークスペースで作成する変数の名前。 |
| MATLAB ベース ワークスペースで作成する変数の値。 |
| この関数の評価がキャンセルされました。 |
| この関数の評価が中断されました。 |
| MATLAB セッションを使用できません。 |
engine.putVariable("myVar", 100);
putVariableAsync
Future<Void> putVariableAsync(String varName, T varData)
MATLAB ベース ワークスペースに変数を非同期的に入れます。
| MATLAB ベース ワークスペースで作成する変数の名前。 |
| MATLAB ベース ワークスペースで作成する変数の値。 |
Future<Void>
のインスタンス
| MATLAB セッションを使用できません。 |
Future<Void> future = engine.putVariableAsync("myVar", 100);
disconnect
void disconnect()
現在の MATLAB セッションから同期的に切断します。
| 現在の MATLAB セッションは切断できません。 |
engine.disconnect();
disconnectAsync
Future<Void> disconnectAsync()
現在の MATLAB セッションから非同期的に切断します。
Future<Void> future = engine.disconnectAsync();
quit
void quit()
現在の MATLAB セッションのシャットダウンを同期的に強制実行します。
| 現在の MATLAB セッションはシャットダウンできません。 |
engine.quit();
quitAsync
Future<Void> quitAsync()
現在の MATLAB セッションを、終了まで待たず非同期的に強制シャットダウンします。
Future<Void>
のインスタンス
Future<Void> future = engine.quitAsync();
close
void close()
MatlabEngine
は、MatlabEngine
オブジェクトに java.lang.AutoCloseable
インターフェイスを実装するための close()
メソッドを提供します。この close()
メソッドを使用すると、try
-with-resources ステートメントを使用して、ステートメントの終わりに MATLAB セッションを自動的に切断または終了することができます。
MatlabEngine
close()
メソッドは、コンテキストに応じて、現在の MATLAB セッションを切断または終了します。
Java プロセスが MATLAB セッションを既定の非共有セッションとして開始する場合、
close()
は MATLAB を終了します。MATLAB セッションが共有セッションの場合、
close()
は MATLAB を Java プロセスから切断します。MATLAB は他に接続がなければ終了します。
現在の MATLAB セッションのシャットダウンまたは切断を強制的に実行するには、MatlabEngine.quit()
、MatlabEngine.disconnect()
または非同期でこれらと同じ処理を行うメソッドを明示的に呼び出します。
engine.close();