Как получить доступ к функции 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, чтобы приложение работало, я в этом не уверен.

Другие вопросы по тегам