Как передать 2d массив из Java в Matlab (R2018b) с помощью пакета JMI и получить результаты обратно из Matlab в Java? - PullRequest
0 голосов
/ 19 октября 2018

Я хочу реализовать алгоритмы SVD, PCA и LDA, используя java и matlab.Я извлекаю данные и формирую двумерную матрицу с использованием Java, которую затем хочу передать в функции Matlab svd, pca.Тем не менее, я получаю сообщение об ошибке в Matlab как «Первый ввод должен быть одинарным или двойным.»

Я устанавливаю связь Java-Matlab как (используя пакет JMI) -

 MatlabProxyFactory factory = new MatlabProxyFactory();
 MatlabProxy proxy = factory.getProxy();
 String path ="cd(Matlab path)";
 proxy.eval(path);

Например, мой двумерный массив создается следующим образом -

double [][] A = new double[][] {{1.0,2.0,3.0},{4.0,5.0,6.0},{7.0,8.0,9.0}};

Моя функция matlab записывается как -

function svd1(A) 
    [U,S,V] = svd(A); 
end

Теперь я вызываю функцию matlab из java как -

proxy.feval("svd1",(Object) A);

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

Любые указатели о том, как передать двумерный массив из Java в Matlab и как получитьРезультаты обратно будут действительно полезны.

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