Запуск функции MATLAB из Java - PullRequest
       22

Запуск функции MATLAB из Java

11 голосов
/ 22 октября 2009

У меня есть файл .m в MATLAB, который я хотел бы вызвать из Java и получить решение в виде строки или чего-либо еще в Java. Это звучит очень просто, но по какой-то причине я не могу заставить это работать.

Я пробовал это:

matlab -nosplash -wait -nodesktop -r  myFunction

но я не уверен, как я анализирую ответ, так как MATLAB открывает свою собственную командную строку (в Windows).

Я пользуюсь этим, но он ничего не возвращает.

Process p = Runtime.getRuntime().exec(commandToRun);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

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

Ответы [ 5 ]

7 голосов
/ 09 июля 2011

matlabcontrol основан на той же базовой библиотеке MATLAB, которая используется MatlabControl, упомянутой Джеффом, но является более современной, надежной и документированной. Чтобы начать, взгляните на прохождение .

7 голосов
/ 23 октября 2009

Хитрость в том, чтобы использовать класс MatlabControl http://www.cs.virginia.edu/~whitehouse/matlab/JavaMatlab.html. Он очень прост в использовании, и вы можете делать именно то, что пытаетесь (и даже больше).

2 голосов
/ 15 сентября 2016

В Matlab R2016b MathWorks добавил API-интерфейс MATLAB Engine для Java , который позволяет выполнять код MATLAB из Java.

1 голос
/ 19 августа 2013

JAMAL - библиотека с открытым исходным кодом, основанная на Java RMI (API удаленного вызова методов), которая соответствует вашим потребностям

0 голосов
/ 23 октября 2009

Существует хороший Java-COM-мост под названием JaCoB (http://sourceforge.net/projects/jacob-project/)), который вы можете использовать для автоматического запуска Matlab в качестве COM-сервера в фоновом режиме. Затем вы можете следовать инструкциям из справки Matlab для взаимодействия с интерфейсом Matlab COM.

Хотя это очень общий интерфейс, он обеспечивает достаточную гибкость, чтобы легко выполнить несколько вызовов Matlab, как в вашем случае.

Просто скачайте пакет JaCoB и посмотрите в папке docs некоторую документацию. Вы также должны включить в свой путь DLL Jacob.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...