2012-03-12 69 views
14

我有一個算法和一些其他代碼是在MATLAB中,我想在我的Android應用程序中使用它。如何將Matlab代碼庫與Android集成?

我怎樣才能做到這一點?

  • 我可以從MATLAB製作一個用於Android的jar文件嗎?
  • 我還得做點別的嗎?
+1

你可以在你的android項目中包含jar。爲此,請轉到項目屬性,在java builder的「打開庫」選項卡下。你可以從這裏添加你的jar文件 – 2012-03-12 07:06:59

+3

我知道,如何包括一個jar文件..我問如何從Matlab製作一個jar或者如果不是jar那麼該怎麼做。 – Azhar 2012-03-12 07:20:54

回答

13

如果你有一個額外的產品,MATLAB Builder JA for Java,你就可以生產從MATLAB代碼.jar文件。

但是,.jar文件需要MATLAB Compiler Runtime(一個可以通過MATLAB Compiler和MATLAB Builder產品獲得的可自由再分發的組件)才能出現。 MCR具有比適用於典型Android設備更大的佔地面積(它就像是MATLAB自身的副本,沒有用戶界面)。

你能想到的任何

  1. 運行你的MATLAB的.jar一個服務器上遠程文件,讓你的Android應用程序連接到它,或
  2. 而不是使用MATLAB編譯器和生成器產品,使用MATLAB Coder ,它將把MATLAB語言的一個子集直接轉換成C代碼。這個C代碼不需要MCR,可以編譯爲直接在Android上運行。確保您的MATLAB算法屬於或可以用MATLAB語言的適當子集表示。

編輯:R2015a中,從MATLAB生成器JA功能的Java已經換成了新的產品,MATLAB Compiler SDK

-1

你有2種選擇,

  1. 創建一個JAR文件和你的Java應用程序,並開始使用它。 (我沒有通過在Eclipse之外創建JAR來測試它)

  2. 您可以在C中編寫相同的代碼並使用Android NDK來處理它。 (這將是更快,更安全的方式)

+0

這並不是說他的問題。 – 2012-03-12 08:50:58

+0

該jar無法在Android上運行,因爲MCR缺失。 – Daniel 2014-08-16 23:18:23

3

我是Addi的開發者。 http://addi.googlecode.com Addi正在迅速成爲Octave的全部端口(這是一個使用Matlab語法的開源工具)。 Addi將有意圖讓其他應用程序將其用作其數學引擎或繪圖引擎。所以,如果你可以在Octave上運行你的代碼,那麼很快你就可以在Android上運行它。

1

我們唯一的選擇是使用MATLAB Coder toolbox從M代碼獲取C++代碼,該工具箱可以從MATLAB®代碼生成獨立的C和C++代碼。它僅支持所有Matlab函數的一些子集,因此可能不適合您的需要。

擁有C代碼,您可以使用NDK編譯它。 MATLAB編譯器不是這裏的一個選項。

0

您可以將matlab代碼轉換爲python,然後在android中使用python代碼。有很多tools來做這種轉換。 Python比matlab更適合android。

+0

這是假設OP沒有使用任何專門的工具箱。只使用本地MATLAB語法不會造成問題,如果他/她要使用像圖像處理工具箱或信號處理工具箱這樣的東西,則這種轉換是不可能的。 – rayryeng 2014-11-16 21:25:09