On Matlab Part:
Test = Test_abc; % Refer to Class Test_abc
data = javaArray('java.lang.Float',2,3); for i=1:2 for j = 1:3 data(i,j)=java.lang.Float(i+j); end end list_index = 2; % another int number to be passed to java method
Test.getArray(list_index-1, data);
On Java Part:
public class Test_abc{ ... public void getArray(int number, float[][] Mat_data) { System.out.println("Java accepts the value" + Mat_data[0][0] + "."); System.out.println("Java accepts the value" + Mat_data[1][1] + "."); } ...}
Then the error
No method 'getArray' with matching signature found for class Test_abc
would pop up. What's strange is that if one normal matlab matrix element is passed, like " Test.getArray(list_index-1, X(1,1)); ", where X = [1,2; 3,4], there's no problem. I'm most sure that the problem lies in the conversation:
Test.getArray(list_index-1, data); public void getArray(int number, float[][] Mat_data);
Why can't I pass a javaArray from matlab to java? Thank you!
Best Answer