传递矩阵列表到Java方法,错误:没有方法'list_method'找到匹配的签名类
7次浏览(过去30天)
显示旧的评论
你好,
在Matlab的部分:
33矩阵=[22日,11日,44岁,22日,44岁,22岁,54);% 1-by-8矩阵
如果真正的
%的代码
进口edu.lipreading。*;
进口java.util.Vector;
培训= MainMethod;
training.list_method(矩阵);
结束
在Java部分
如果真正的
%的代码
公共空白list_method(列表<整数>点){
System.out.println (“欢迎使用列表法”);
}
结束
注意:当我运行我的matlab代码,我得到的错误像没有方法'list_method'与匹配签名找到类'edu. liprereading . mainmethod '。
/ / edu。lipreading包名,MainMethod类名
接受的答案
马尔科姆Lidierth
2014年3月4日
试一试
公共空白list_method (double[]分){
...
}
注意,MATLAB向量/矩阵默认包含双精度浮点数,并作为副本传递给Java。
答案(1)
马尔科姆Lidierth
2014年3月5日
编辑:马尔科姆Lidierth
2014年3月5日
好的,如果你被一个List java端卡住了,你需要创建一个List matlab端。
在MATLAB:
- 创建一个具体的列表类
列表= java.util.ArrayList ()
- 向它添加元素
为k = 1:长度(矩阵)
list.add (int32(矩阵(k)));
结束
- 检查它的大小:
> > list.size ()
ans =
8
请注意,Java代码中的“”注释仅在编译时相关。将上述MATLAB变量转换为int32可以确保ArrayList在运行时将java.lang.Integer添加到列表中。可以显式地使用
list.add (java.lang.Integer.valueOf(矩阵(k)));
代替。
在MATLAB中,你可以使用“get”来访问列表元素:
如。
list.get (0)
注意,当MATLAB接收到返回的Integer时,它会从它创建一个MATLAB原语double:
> >类(list.get (0))
ans =
双
Java不会-它会在列表中使用Java .lang. integer实例。