I have already asked look @ Passing List ,still awaiting for result .if any body know please let me know Thanks.
Passing Matrix List to Java Method ,error:No method 'list_method' with matching signature found for class
조회 수: 3 (최근 30일)
이전 댓글 표시
Hi,
On Matlab Part :
matrix =[22,11,33,44,22,44,22,54]; % 1-by-8 matrix
if true
% code
import edu.lipreading.*;
import java.util.Vector;
training = MainMethod;
training.list_method(matrix);
end
On Java Part
if true
% code
public void list_method(List<Integer> points){
System.out.println("Welcome to List Method");
}
end
Note : When I have run my matlab code i got error like No method 'list_method' with matching signature found for class 'edu.lipreading.MainMethod'. // edu.lipreading Package Name ,MainMethod Class name
채택된 답변
Malcolm Lidierth
2014년 3월 4일
Try
public void list_method(double[] points){
...
}
Note that MATLAB vectors/matrices contain doubles by default and are passed to Java as a copy.
댓글 수: 3
추가 답변 (1개)
Malcolm Lidierth
2014년 3월 5일
편집: Malcolm Lidierth
2014년 3월 5일
OK, if you are stuck with a List java-side, you need to create a list MATLAB-side.
In MATLAB:
- Create a concrete list class
list=java.util.ArrayList()
- Add the elements to it
for k=1:length(matrix)
list.add(int32(matrix(k)));
end
- Check its size:
>> list.size()
ans =
8
Note that the "<Integer>" annotation in your Java code is only relevant at compile time. Casting the MATLAB variable to int32 above ensures that the ArrayList will add a java.lang.Integer to the list at run-time. You could do that explicitly using
list.add(java.lang.Integer.valueOf(matrix(k)));
instead.
Within MATLAB you can access the list elements using "get":
e.g.
list.get(0)
Note that when MATLAB receives the returned Integer, it creates a MATLAB primitive double from it:
>> class(list.get(0))
ans =
double
Java will not - it will use the java.lang.Integer instance in the list.
참고 항목
카테고리
Help Center 및 File Exchange에서 Call Java from MATLAB에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!