2017-01-11 8 views
1

Javaアプリケーションでmatlab関数を使いたいです。私は私の関数からJavaパッケージをmatlabのdeploytoolで作成します。さて、このパッケージをどうすれば使えますか?私のJavaプロジェクトでdeploytoolによって作成されたjarファイルのみをインポートし、その関数を使用できますか?matlab環境でjavaクラスでmatlab関数を実行

多くのグーグルの後で、this toturialを使用しましたが、最終ステップでは「ファイルを読み込めませんでした」というエラーが表示されます。

私は約MatlabControlを読んでいますが、この解決策では、私たちのシステムでは、Javaコード実行するmatlab環境が必要です。しかし、私はmatlabをまったく持っていないかもしれないシステムで私の最終的なアプリを実行します。

私はmatlab環境がなくてもjavaクラスでmatlab関数を実行するソリューションが必要です。

答えて

2

最後に問題を解決します。

  1. 書き込みMATLAB関数:ステップによって溶液工程は以下の通りである

    関数y = makesqr(X)

    Y =魔法を(X)

  2. matlabにdeploytoolを使用してjavaパッケージを作成します。

3. Eclipseで新しいJavaアプリケーションを作成し、メインクラスを追加します。インポートjavabuilde.jarとmakesqr.jar:

import com.mathworks.toolbox.javabuilder.MWArray; 

    import com.mathworks.toolbox.javabuilder.MWClassID; 

    import com.mathworks.toolbox.javabuilder.MWNumericArray; 

    import makesqr.Class1; 

とmain.java:

public class main { 

public static void main(String[] args) { 

     MWNumericArray n = null; 
     Object[] result = null; 
     Class1 theMagic = null; 

     try 
     { 
     n = new MWNumericArray(Double.valueOf(5),MWClassID.DOUBLE); 

     theMagic = new Class1(); 

     result = theMagic.makesqr(1, n); 
     System.out.println(result[0]); 
     } 
     catch (Exception e) 
     { 
     System.out.println("Exception: " + e.toString()); 
     } 
     finally 
     { 
     MWArray.disposeArray(n); 
     MWArray.disposeArray(result); 
     theMagic.dispose(); 
     } 
} 

}

    1. javabuilder.jarとmakesqrを加えます。 jarファイルを プロジェクトのjavaビルドパスにコピーしてください。

    2. 実行してください。

    ザ・ダブル。valueOf(3)は関数の入力を定義し、出力は次のようになります。

    8  1  6 
    3  5  7 
    4  9  2 
    
  • 0

    問題が正しく解決されませんでした。 Matlabコードからjarファイルをコンパイルしていて、それを使用しようとしていますか、またはチュートリアルの最後のステップですか?

    あなたの回答が最新の場合、おそらくあなたは "。"クラスパスの前に リンク先のチュートリアルから:

    クラスパスの最初の位置に必ずドット(。)を配置する必要があります。そうでなければ、Javaがクラスをロードできないというメッセージが表示されます。

    もチェックすると、MATLABのコンパイラパス( "C:\プログラムファイル\ MATLAB \ MATLABコンパイラのランタイム\ V82 \ツールボックス\ javabuilder \ジャーの\ javabuilder.jar" - チュートリアルでは)システムの正しいです。

    +0

    私はチュートリアルの最後のステップに入っています。どのように私はmatlabのコンパイラのパスを確認することができますか? – sahar

    +0

    それは依存している:あなたはWindowsやLinux上にいますか?あなたはmatlabのコンパイラランタイムをインストールしましたか? avarageはmatlabのインストール時に同じパスにする必要があります – Dabr