Как получить доступ к функции Matlab из кода Java?
Моя java-программа использует код matlab, упакованный в виде jar-файлов для обработки изображений. Проблема в том, что когда я вызываю функцию (написанную мной) с вызовом mmreader в первый раз, она работает нормально. Однако любой последующий вызов функции (такой же или другой), вызывающей mmreader, не работает, и я получаю сообщение о том, что функция mmreader не найдена.
Я также сталкиваюсь с подобной проблемой в другой части моего приложения, где вызов функции matlab просто вызывает исключение, такой же кусок кода отлично работает в других файлах.
try{
vplayer.playmov(player_params);
}
catch(Exception e){
System.out.println("error playing cluster");
}
2 ответа
Я бы быстро взглянул на эту ссылку Доступ к Matlab из Java Вот пара выдержек со страницы, которые могут быть полезны.
mlapp.MLApp mlApp = new mlapp.MLApp();
String result = mlApp.execute("a = [1 2 3 4; 5 6 7 8;]");
System.out.println("Execute result is " + result);
Внутри этих кавычек вы даже можете вызвать функцию MATLAB, просто убедитесь, что вы присваиваете вывод нужному типу данных.
Наиболее важной частью этой ссылки является;
Мы предполагаем, что вы загрузили и расширили комплект J-Integra® с http://j-integra.intrinsyc.com/ и правильно его установили.
Без этого вы не сможете выполнить вышеуказанное утверждение.
Кроме того, в MATLAB вы можете создать JAR со своими функциями и подписать этот JAR для работы только с вашими приложениями. Возможно, вам понадобится среда исполнения MATLAB, чтобы приложение работало, я в этом не уверен.