2016-07-15 53 views
0

我有一個MATLAB腳本通過matlabcontrol.jar包在Java Eclipse項目上運行。我的Java程序如何在不必每次建立連接的情況下連續使用MATLAB?

我有以下建立

MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder() 
      .setUsePreviouslyControlledSession(true) 
      .setHidden(true) 
      .setMatlabLocation(null).build(); 

MatlabProxyFactory factory = new MatlabProxyFactory(options); 

MatlabProxy proxy = factory.getProxy(); 

//some code invoking the proxy.eval() method 

的問題是,我有MATLAB腳本在模擬運行的過程中運行了好幾次。我如何做到這一點,以便每次我想使用MATLAB函數時,Java都不必與MATLAB重新連接?

任何幫助,將不勝感激。

謝謝!

+1

您不必每次都重新連接到MATLAB。只需重新使用'proxy'對象即可 – Suever

回答

1

我不熟悉JAVA,所以我會以簡單的話來說明我的解決方案,您可以將其轉化爲JAVA世界。 :)

  1. 創建一個Java單身類負責處理連接。
  2. 提供指向單例對象的公共靜態只讀屬性。
  3. 現在使用單例對象調用MATLAB函數。

例如爲:

public class MATLABConnector 
{ 
     private MATLABConnector con=new MATLABConnector(); 
     MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder() 
     .setUsePreviouslyControlledSession(true) 
     .setHidden(true) 
     .setMatlabLocation(null).build(); 

     MatlabProxyFactory factory = new MatlabProxyFactory(options); 

     private MATLABConnector() 
     { 
      // Do basic initializations. 
     }   

     private boolean checkConnecionStatus(); 
     private boolean establishConnection(); 
     public static MATLABProxy getProxy() 
     { 
       if(!con.checkConnectionStatus()) 
        con.establishConnection(); 
       return con.factory.getProxy(); 
     } 
    } 
相關問題