Вызов Java из MATLAB?
Я хочу, чтобы программа Matlab вызывала java файл, предпочтительно с примером.
Ответы
Ответ 1
Хорошо, я попытаюсь привести здесь мини-пример. Либо используйте java-функции прямо из окна Matlab, как предлагает zellus, либо, если это необходимо, создайте свой собственный класс java. Вот пример:
package testMatlabInterface;
public class TestFunction
{
private double value;
public TestFunction()
{
value = 0;
}
public double Add(double v)
{
value += v;
return value;
}
}
Затем превратите его в файл jar. Предполагая, что вы поместили файл в папку с именем testMatlabInterface
, запустите эту команду в командной строке:
jar cvf testMatlab.jar testMatlabInterface
Затем в Matlab перейдите в каталог, в котором находится ваш testMatlab.jar
файл, и запустите команду import testMatlabInterface.*
, чтобы импортировать все классы в пакете testMatlabInterface
. Затем вы можете использовать класс следующим образом:
>> methodsview testMatlabInterface.TestFunction
>> me = testMatlabInterface.TestFunction()
me =
[email protected]
>> me.Add(10)
ans =
10
>> me.Add(10)
ans =
20
>> me.Add(10)
ans =
30
Сообщите мне, могу ли я оказать дополнительную помощь.
Ответ 2
Существует три случая.
-
Встроенные библиотеки Java.
То есть, все, что описано здесь. Эти элементы можно просто вызвать напрямую. Например:
map = java.util.HashMap;
map.put(1,10);
map.put(2,30);
map.get(1) %returns 10
Единственное усложнение - это отображение Matlab выполняется между типами данных Matlab и типами данных Java. Эти сопоставления описаны здесь (Matlab to Java) и здесь (Java to Matlab ). (tl; dr: обычно сопоставления выглядят так, как вы ожидали)
-
Предварительно скомпилированные файлы *.jar
Сначала вам нужно добавить их в путь класса Java Matlab. Вы можете сделать это динамически (т.е. Сеанс на основе Matlab без необходимого состояния Matlab) следующим образом:
javaaddpath('c:\full\path\to\compiledjarfile.jar')
Вы также можете добавить их статически, отредактировав файл classpath.txt. Для получения дополнительной информации используйте docsearch java class path
.
-
Предварительно скомпилированные файлы *.class.
Они похожи на файл *.jar, за исключением того, что вам нужно добавить каталог, содержащий файл класса, а не сами файлы классов. Например:
javaaddpath('c:\full\path\to\directory\containing\class\files\')
%NOT THIS: javaaddpath('c:\full\path\to\directory\containing\class\files\classname.class')