このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Java から MATLAB への変数の引き渡し
変数の渡し方
Java® 変数を次の方法で MATLAB® に渡すことができます。
MatlabEngine
のfeval
メソッドとfevalAsync
メソッドの呼び出しで、変数を関数の引数として渡す。関数呼び出しの引数として渡される変数は、MATLAB ベース ワークスペースには保存されません。MatlabEngine
のputVairable
メソッドとputVariableAsync
メソッドを使用して、変数を MATLAB ベース ワークスペースに配置する。
型変換の詳細については、Java データ型の変換を参照してください。
関数の引数の引き渡し
このコード例では、多項式 の係数を MATLAB 関数 roots
に渡します。
double 配列
p
を定義して、MATLAB 関数roots
の引数として渡す。double 配列
r
を定義して、戻り値を受け入れる。
import com.mathworks.engine.*; public class javaPassArg{ public static void main(String[] args) throws Exception{ MatlabEngine eng = MatlabEngine.startMatlab(); double[] p = {1.0, -1.0, -6.0}; double[] r = eng.feval("roots", p); for (double e: r) { System.out.println(e); } eng.close(); } }
MATLAB ワークスペースでの変数の配置
このコード例では、MATLAB ワークスペースに変数を配置し、これらの変数を MATLAB による MATLAB 関数 complex
の呼び出しで引数として使用します。MATLAB の who
コマンドによって、ワークスペース変数の一覧が表示されます。
import com.mathworks.engine.*; import java.util.Arrays; public class javaPutVar { public static void main(String[] args) throws Exception { MatlabEngine eng = MatlabEngine.startMatlab(); eng.putVariable("x", 7.0); eng.putVariable("y", 3.0); eng.eval("z = complex(x, y);"); String[] w = eng.feval("who"); System.out.println("MATLAB workspace variables " + Arrays.toString(w)); eng.close(); } }