Main Content

Java アプリケーションでの MATLAB クラスの使用

概要

この例では、MATLAB® クラスの MATLAB ラッパー関数を呼び出す Java® アプリケーションを作成する方法を示します。

この例では、以下の手順を実行します。

  1. MATLAB Compiler SDK™ を使用して、MATLAB ラッパー関数を使用して MATLAB クラスにアクセスするパッケージを作成します。

  2. Java アプリケーションで MATLAB ラッパー関数を呼び出します。

  3. アプリケーションをビルドして実行します。

手順

  1. MATLAB で、パッケージ化対象の MATLAB コードを調べます。この例では、次のコードを使用して、MyMATLABClass.m という名前の MATLAB クラスを作成します。

    classdef MyMatlabClass < handle
        
        properties (Access = private)
            x % input variable
            y % input variable
            z % result variable
        end
        
        methods
            function this = MyMatlabClass()
                this.x = []; this.y = [];
            end
            
            function setInput(this, input)
                input = input(:);           
                if isnumeric(input) && numel(input) == 2
                    this.x = input(1);
                    this.y = input(2);
                end
            end
            
            function result = getResult(this)
                result = this.z;
            end
            
            function status = compute(this)
                try
                    this.z = (this.x.^2 + this.y.^2)^0.5;
                    status = true;
                catch
                    status = false;
                end
            end
        end
        
    end
  2. クラスの 4 つの MATLAB ラッパー関数 CreateMyMATLABClass.mSetInput.mCompute.mGetResult.m を作成します。

    CreateMyMATLABClass.m.  

    function instance = CreateMyMATLABClass()
        instance = MyMATLABClass();
    end

  3. 次の情報を使用して、ライブラリ コンパイラ アプリまたは compiler.build.javaPackage で Java パッケージをビルドします。

    フィールド
    ライブラリ名MyMATLABClass1
    クラス名Class1
    コンパイル対象ファイルCreateMyMATLABClass.m
    SetInput.m
    Compute.m
    GetResult.m

    たとえば、compiler.build.javaPackage を使用している場合は、以下を入力します。

    buildResults = compiler.build.javaPackage(["CreateMyMATLABClass.m", ...
    "SetInput.m","Compute.m","GetResult.m"], ...
    'PackageName','MyMATLABClass1', ...
    'ClassName','Class1');

    詳細については、Java パッケージの生成と Java アプリケーションのビルドの手順を参照してください。

    メモ

    MyMATLABClass.m ファイルは依存関係の分析でコンパイラによって自動的に含められるため、パッケージに手動で追加する必要はありません。

  4. 生成された MyMATLABClass1.jar パッケージが含まれているフォルダーに移動します。ライブラリ コンパイラを使用した場合、パッケージは for_testing フォルダーにあります。

  5. MATLAB 関数にアクセスするアプリケーションのソース コードを記述します。この例のコードを次に示します。

     javadriver.java

  6. コマンド プロンプト ウィンドウを開き、javadriver.javaMyMATLABClass.jar が含まれているフォルダーに移動します。

  7. javac を使用して javadriver.java アプリケーションをコンパイルします。

    • Windows® の場合、次を入力します。

      javac -classpath "matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\MyMATLABClass.jar javadriver.java

    • UNIX® の場合、次を入力します。

      javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./MyMATLABClass.jar javadriver.java

    matlabroot は、MATLAB または MATLAB Runtime のインストール フォルダーへのパスに置き換えてください。たとえば、Linux® でのパスは /usr/local/MATLAB/R2023b のようになります。

  8. javadriver アプリケーションを実行します。

    Windows の場合、次を入力します。

    java -classpath .;"matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\MyMATLABClass.jar javadriver

    Linux の場合、次を入力します。

    java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":.\MyMATLABClass.jar javadriver

    メモ

    アプリケーションを Mac 64 ビット プラットフォームで実行する場合は、Java コマンドに -d64 フラグを追加する必要があります。

javadriver プログラムにより、次の出力が表示されます。

--- USE: Constructors --- 
1 
2.2361 
--- Done. --- 

参考

|

関連するトピック