2012-03-12 73 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