2014-07-14 54 views
5

我想從使用matlabcontrol.jar在Eclipse中開發的java android應用程序調用用戶定義的matlab函數(.m文件)。如何使用matlabcontol.jar從java運行matlab腳本

實際上,當我在java項目中使用它時,它工作的很好。 但我不知道是否有可能使用它,當我開發android應用程序。

問題是當我使用matlabcontrol.jar作爲java項目時,它彈出並自動運行matlab應用程序(如R2009b matlab),即使我不想使用它。然後在matlab控制檯上運行並打印結果。

然後,我想,如果有人沒有在他們的電腦或智能手機上安裝matlab應用程序,就不能使用包含matlab代碼的應用程序。

所以,我只想運行matlab代碼在java程序(對於android),而不是使用matlab應用程序。請給我選擇或替代方法來解決?

請幫忙。 謝謝。

+0

使用matlabcontrol是不可能的,因爲matlabcontrol沒有實現functionallity,它只控制matlab。我看到的替代方案是1)Matlab Mobile 2)Octave for Android 3)生成C++代碼並將其編譯到本機庫中。 – Daniel

回答

3

matlabcontrol只是給你一種從Java調用MATLAB運行副本的方法。如果您想要在Android設備上運行一些MATLAB代碼,這不適用於您,因爲沒有可以在Android上運行的MATLAB版本。

如果你有MATLAB代碼,你想作爲一個Android應用程序的一部分運行,你有兩個真正的選擇:

我)使用MATLAB編碼器的MATLAB算法,C代碼轉換,即可以編譯,從Java調用,幷包含在您的應用程序中以在設備上運行。您需要確保您的MATLAB算法屬於MATLAB編碼器支持的MATLAB語言的子集,但這通常不是一個大問題。 MathWorks有一個錄製的網絡研討會,上面有一個如何做到這一點的工作示例(它是iPhone上的Objective C而不是Android上的Java,但原理相同)。如果你想查看它,它被稱爲「MATLAB to iPhone made easy」。這裏是the link to it。 ii)使用用於.NET的MATLAB Builder NE或用於Java的MATLAB Builder JA將您的MATLAB算法部署爲Web服務,並讓您的Android應用程序調用該Web服務。

PS MATLAB Mobile在這裏不是一個相關的選項 - 它是連接到您的機器上或雲中的MATLAB會話並交互式運行MATLAB代碼的工具。它沒有給你一種在設備上運行MATLAB代碼的方法。