私はScalaに問題があり、MATLABからのスカラーの2つのベクトルをScalaクラスに渡しています。MatlabからScalaクラスへのベクトルを渡します。
は、私たちがこのフォームのScalaのクラスがあるとします。私は以前、これをコンパイルした
class MyClass {
def myMethod(x: Seq[Double]): Double = {
val methodValue = for(i <- x.indices) yield { math.pow(x(i),2.0) }
methodValue.sum
}
}
、私のMATLABとJREのマッチしたJavaのバージョン、およびどのような今までに必要なの
。
私は、配列[ダブル]、配列[ダブル]とベクトル[ダブル]をテストしましたが、何の進展は
を達成しませんでした。
今、私はこのクラスをMATLAB内で呼び出して、それに目的の行ベクトルを与えて、それが二乗和の値になるようにします。このため
私は、MATLABでこのMFILEを書いた:clc, clear, close all
javaaddpath(pwd)
javaaddpath('C:\Program Files\scala\lib\scala-library.jar')
javaclasspath('-dynamic')
newInstanceOfClass = MyClass
newInstanceOfClass.myMethod([1 2 3 4])
しかし、私は言ってエラーを取得:
ない方法 'をMyMethodは' クラスが見つかり署名を照合して 'MyClassの'。
このScalaクラスに単純なベクターを渡す方法はわかりません。誰も私にこれを助けることができますか?
私も、まあ、私はがこの問題を解決すると思う問題を解決するためのMatlabののjavaArrayを使用しようとしたが、でも
ただ不思議:あなたは、MATLABが呼び出すサポートしていることを確信しています** Scala **メソッド/クラス? – GhostCat
MyClassをオブジェクトに変更してみてください。 myMethodがインスタンスメソッドであることがわかる理由はありません(これは本質的に2つのパラメータをとります:thisとSeq [Double])。 – Phasmid
はい、私はかなりMATLABがScalaクラスを実行すると確信しています。そして、私は正常に入力引数なしで簡単な "Hello World"クラスを実行しました。私の問題は、クラスの入力ベクトルを渡して、シグネチャのミスマッチエラーが発生することです。 – Yarpiz