我正在尝试将MATLAB中的数据X
转换为Weka Instance
类。我正在使用Weka 3.7.5和MATLAB 7.10(2010a)。
我尝试了以下内容:
javaaddpath([WEKA_HOME 'weka.jar']);
import weka.core.*;
N = 3;
inst = Instance( N );
我收到错误
??? No constructor 'weka.core.Instance' with matching signature found.
当我输入which Instance
时,它可以找到这个类。此外,这种形式的构造函数与记录的here一致。
我从没有从MATLAB调用Java的经验,所以我可能在这里缺少一些简单的东西。谢谢!
更新:
尝试将N投射到int32,但没有运气,仍然是同样的错误。
我尝试使用较旧版本的Weka(版本3.5.8)并且它有效。无法解释原因。
我发现更新了documentation:它告诉我Instance
现在是一个接口,而不是像我正在查看的文档中那样的类。所以我想我现在的问题是,我可以像上课那样实例化吗?很抱歉最初混淆了..
答案 0 :(得分:2)
使用课程DenseInstance
代替Instance
。它是3.6中Interface
的实现。
答案 1 :(得分:0)
疯狂猜测:
Wekas API建议有3个构造函数:
实例(double weight,double [] attValues)
实例(实例实例)
实例(int numAttributes)
因此,如果您使用的是最后一个,请首先将3转换为int32,如下所示:
inst =实例(int32(N));
坦率地说,我没有检查过,所以我无法确定100%
更新:(以下问题编辑) 你无法实例化一个界面! 接口就像用户和程序员之间的SE合同。它不是具体的实现
答案 2 :(得分:0)
试试这个:
inst = javaObject('weka.core.Instance', N);