Java 无法在MATLAB中实例化Weka类

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. 当我键入哪个实例时,

我正在尝试将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. 
当我键入
哪个实例时,它能够找到这个类。此外,这种形式的构造函数和文档中的构造函数是一致的

我对从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。谢谢