Java 无法在MATLAB中实例化Weka类
我正在尝试将MATLAB中的数据Java 无法在MATLAB中实例化Weka类,java,matlab,machine-learning,weka,Java,Matlab,Machine Learning,Weka,我正在尝试将MATLAB中的数据X转换为Weka实例类。我使用的是Weka 3.7.5和Matlab7.10(2010a) 我尝试了以下方法: javaaddpath([WEKA_HOME 'weka.jar']); import weka.core.*; N = 3; inst = Instance( N ); 我收到了错误 ??? No constructor 'weka.core.Instance' with matching signature found. 当我键入哪个实例时,
X
转换为Weka实例
类。我使用的是Weka 3.7.5和Matlab7.10(2010a)
我尝试了以下方法:
javaaddpath([WEKA_HOME 'weka.jar']);
import weka.core.*;
N = 3;
inst = Instance( N );
我收到了错误
??? No constructor 'weka.core.Instance' with matching signature found.
当我键入哪个实例时,它能够找到这个类。此外,这种形式的构造函数和文档中的构造函数是一致的
我对从MATLAB调用Java缺乏经验,所以这里可能缺少一些简单的东西。谢谢
更新:
尝试将N强制转换为int32,但没有成功,仍然是相同的错误
我用一个较旧版本的Weka(3.5.8版)尝试了这个方法,效果很好。但无法解释原因
我发现updated:它告诉我,Instance
现在是一个接口,而不是像我所看到的文档中那样的类。所以我想我现在的问题是,我能像实例化一个类一样实例化它吗?很抱歉一开始就混淆了这一点
胡乱猜测:
Wekas API建议有3个构造函数:
实例(双权重,双值)
实例(实例实例)
实例(int numAttributes)
因此,如果使用最后一个,请先将3转换为int32,如下所示:
inst=实例(int32(N))
坦白说,我还没有检查过,所以我不能100%确定
更新:(以下问题编辑)
不能实例化接口!
界面就像用户和程序员之间的SE合同。它不是一个具体的实现尝试以下方法:
inst = javaObject('weka.core.Instance', N);
使用类DenseInstance
而不是Instance
。它是3.6中接口的实现。如何定义N
?如果您使用int32(N)
将其转换为整数会怎么样?这是一个很好的建议,但仍然是相同的行为。这为我解决了问题,使用weka 3.7.6。谢谢