2011-12-20 11 views
2

MATLABのXデータをWeka Instanceクラスに変換しようとしています。私はWeka 3.7.5とMATLAB 7.10(2010a)を使用しています。私は次のことを試してみたMATLABでWekaクラスをインスタンス化できません

:私はwhich Instanceを入力すると

javaaddpath([WEKA_HOME 'weka.jar']); 
import weka.core.*; 

N = 3; 
inst = Instance(N); 

そして、私はエラーが表示さ

??? No constructor 'weka.core.Instance' with matching signature found. 

、このクラスを見つけることができます。また、この形式のコンストラクタは、hereと書かれているものと一致します。

私はMATLABからJavaを呼び出すことに慣れていないので、ここでは単純なものがありません。ありがとう!

更新:

  1. INT32、ない運、まだ同じエラーにNをキャストしようとしました。

  2. 古いバージョンのWeka(ver 3.5.8)でこれを試してみました。しかし、理由を説明することはできません。

  3. 更新されたdocumentationが見つかりました:これは、私が見ていたドキュメントのように、今やInstanceがクラスではなくインターフェイスになっていることを伝えています。だから私の質問は今、私はクラスを行うようにこれをインスタンス化することができますか?最初にこれを混乱させて申し訳ありません..

+0

あなたは 'N 'をどのように定義しますか? 'int32(N)'で整数に変換するとどうなりますか? – yuk

+0

良い提案ですが、依然として同じ動作です。 – MarkV

答えて

0

野生の推測:

インスタンス(ダブル重量、ダブル[] attValues)
インスタンス:

Wekas APIは3つのコンストラクタがあることを示唆しています(インスタンスインスタンス)(numAttributes INT)
インスタンス

最後のものを使用している場合は、3を最初にint32にキャストします。

inst =インスタンス(int32(N));

率直に言って、私はそれをチェックしていないので、私は100%

更新で確認することはできません。(質問の編集に続いて) あなたがインターフェイスをインスタンス化することはできません! インターフェイスは、ユーザとプログラマ間のSEの契約に似ています。代わりにInstance

inst = javaObject('weka.core.Instance', N); 
0

ではありません。これは、3.6のInterfaceの実装です。

2

使用クラスDenseInstance:それはこれを試してみてください具体的な実装

+0

これは、weka 3.7.6を使用して私の問題を解決します。 ありがとう! – julou

関連する問題