Как интегрировать библиотеку кодов Matlab с Android?

У меня есть алгоритм и другой код, который находится в MATLAB, и я хочу использовать его в своем приложении для Android.

Как я могу это сделать?

  • Можно ли создать файл jar из MATLAB для использования с Android?
  • Мне нужно сделать что-то еще?

Ответ 1

Если у вас есть дополнительный продукт, MATLAB Builder JA для Java, вы можете создать файл .jar из вашего кода MATLAB.

Однако для файла .jar требуется MATLAB Compiler Runtime (свободно распространяемый компонент, который вы получаете вместе с MATLAB Compiler и продуктами MATLAB Builder). MCR имеет гораздо больший отпечаток, чем подходит для обычного устройства Android (он похож на копию самого MATLAB без пользовательского интерфейса).

Вы могли бы подумать о

  • Запуск вашего файла MATLAB.jar удаленно на сервере и подключение к нему приложения Android или
  • Вместо использования продуктов MATLAB Compiler и Builder используйте MATLAB Coder, который преобразует подмножество языка MATLAB непосредственно в C-код. Этот код C не требует MCR и может быть скомпилирован для работы непосредственно на Android. Убедитесь, что ваш алгоритм MATLAB попадает внутрь или может быть выражен в соответствующем подмножестве языка MATLAB.

Изменить: Начиная с R2015a, функциональность от MATLAB Builder JA для Java была заменена новым продуктом, MATLAB Compiler SDK.

Ответ 2

Я разработчик Addi. http://addi.googlecode.com Addi быстро становится полным портом Octave (который является инструментом с открытым исходным кодом, который использует синтаксис Matlab). У адди есть намерения для других приложений использовать его в качестве своих математических движков или графических движков. Итак, если вы можете запустить свой код в Octave, то очень скоро вы сможете запустить его на Android.

Ответ 3

Новая функция Matlab 2014a:

http://www.mathworks.com/help/simulink/samsung-galaxy-android-devices.html

Теперь вы можете напрямую установить (ограниченный набор) модели на устройства Samsung Android, и это должно работать на любом устройстве Android.

Ответ 4

Наш единственный вариант - получить код С++ из M-кода, используя MATLAB Coder, который генерирует автономный код C и С++ из кода MATLAB®. Он поддерживает только некоторое подмножество всех функций Matlab, поэтому может быть не подходит для ваших нужд.

С кодом C вы можете скомпилировать его с помощью NDK. Компилятор MATLAB здесь не вариант.

Ответ 5

Вы можете преобразовать код matlab в python, а затем использовать код python в android. Для этого преобразования существует много инструментов. Python хорошо работает с Android, чем с Matlab.

Ответ 6

У вас есть 2 варианта,

  • Создайте JAR и включите в приложение Java и начните его использовать. (Я не тестировал это, создав JAR вне Eclipse)

  • Вы можете закодировать то же самое на C и использовать Android NDK для его обработки. (Это будет быстрее и безопаснее)