2010-01-25 102 views

回答

0

有2種方式這樣做:

  1. 使用Matlab引擎具有C接口(見第一個答案對的鏈接)。必須在要運行此程序的所有機器上安裝Matlab(請參閱Matlab許可證瞭解詳細信息)
  2. 使用Matlab Builder for Java編譯matlab代碼並直接生成函數的Java接口。有了這個解決方案,你需要通過Matlab編譯器和Matlab Builder for Java,但是你可以在不付出任何費用的情況下部署解決方案。請注意,您必須在每臺機器上安裝Matlab Compiler Runtime(MCR),但這是免費的。
5

如果你不想買MathWork的MATLAB生成器的Java工具箱,你可以使用MATLAB的無證JMI(Java的MATLAB接口)。搜索JMI的CSSM新聞組(或Google),或基於JMI的JMatLink。 MATLAB代碼本身充滿了JMI使用示例 - 在整個MATLAB安裝過程中使用MATLAB編輯器的搜索工具搜索「jmi」。

請注意,JMI既沒有記錄,也沒有得到MathWorks的正式支持。此外,如果使用不當,可能會導致應用程序掛起或崩潰。但與工具箱不同,它是免費的。

1

代替使用Yair提到的未公開的JMI(Java MATLAB接口),您可以使用matlabcontrol這是一個Java API,它包裝了JMI,使其更容易使用。它是有據可查的,並有一個介紹性的walkthrough。與直接使用JMI不同,它也可以在MATLAB之外運行Java程序時使用。

1

我已經使用Java Builder在java應用程序中運行matlab腳本/函數,它似乎很容易和有幫助。

爲此,您需要使用Java Builder JA工具箱將Java腳本/函數部署爲java類。

然後,您需要將(轉換後的)java類添加到您的java項目庫以及javabuilder jar文件中。

完成上述步驟後,只需調用代碼中的類名,就可以輕鬆地運行matlab腳本(現在是項目庫中的java類)。 如果這個類是一個matlab函數,您可以傳遞參數並輕鬆獲得返回值。

但是,在場外,這不是唯一的方法。但是這個對我來說比較容易。

我希望這回答你的問題。