Как запустить код MATLAB из Java? - PullRequest
5 голосов
/ 25 января 2010

Я столкнулся с проблемой при запуске кода MATLAB из Java. Если вы знаете что-то об этом, не могли бы вы помочь мне?

Ответы [ 5 ]

5 голосов
/ 25 января 2010

Если вы не хотите покупать MATLAB Builder для Java Toolbox от MathWork, вы можете использовать недокументированный JMI MATLAB (интерфейс Java-MATLAB). Поищите в группе новостей CSSM (или в Google) JMI или JMatLink, основанный на JMI. Сам код MATLAB полон примеров использования JMI - ищите «jmi», используя инструмент поиска редактора MATLAB по всей установке MATLAB.

Обратите внимание, что JMI ​​не документирована и официально не поддерживается MathWorks. Более того, при неправильном использовании оно может привести к зависанию или аварийному завершению работы вашего приложения. Но это бесплатно, в отличие от набора инструментов.

1 голос
/ 13 мая 2013

Я использовал Java Builder для запуска сценариев / функций matlab в java-приложении, и это кажется очень простым и полезным.

Для этой цели вам понадобится набор инструментов Java Builder JA для развертывания скрипта / функции matlab как класса java.

Затем вам нужно добавить (преобразованный) класс java в библиотеку проекта java и дополнительно jar-файл javabuilder.

После выполнения описанных выше шагов вы можете легко запустить скрипт matlab (который теперь является java-классом в библиотеке проекта), просто вызвав имя класса в коде. Если класс является функцией Matlab, вы можете передать параметры и легко получить возвращаемые значения.

Но, конечно, это не единственный способ сделать это. Но этот сравнительно простой для меня.

Я надеюсь, что это ответ на ваш вопрос.

1 голос
/ 09 июля 2011

Вместо использования недокументированного JMI ​​(Java MATLAB Interface), упомянутого Yair, вы можете использовать matlabcontrol , который представляет собой API-интерфейс Java, охватывающий JMI, что значительно упрощает его использование. Это хорошо документировано и имеет вводный прохождение . В отличие от непосредственного использования JMI, его также можно использовать при запуске Java-программы вне MATLAB.

0 голосов
/ 25 января 2010

Есть 2 способа сделать это:

  1. Используйте Matlab Engine, который имеет интерфейс C (см. Ссылку первого ответа для этого). Обязательно установить Matlab на все машины, на которых вы хотите его запустить (подробности см. В лицензии Matlab)
  2. Используйте Matlab Builder для Java, который компилирует код Matlab и напрямую создает интерфейс Java для ваших функций. С этим решением вам потребуется компилятор Matlab и Matlab Builder для Java, но затем вы можете развернуть свое решение, не платя ничего больше. Обратите внимание, что вы должны установить Matlab Compiler Runtime (MCR) на каждом компьютере, но это бесплатно.
0 голосов
/ 25 января 2010

Вот пакет, который позволяет развертывать код MATLAB как классы Java .

...