Java 将向量从Matlab传递到Scala类
我对Scala有一个问题,将一个双向量从MATLAB传递到我的Scala类 假设我们有一个如下形式的Scala类:Java 将向量从Matlab传递到Scala类,java,matlab,scala,vector,Java,Matlab,Scala,Vector,我对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 } } 但我得到一个错误,说: 找不到具有匹配签名的方法“myMe
class MyClass {
def myMethod(x: Seq[Double]): Double = {
val methodValue = for(i <- x.indices) yield { math.pow( x(i),2.0) }
methodValue.sum
}
}
但我得到一个错误,说:
找不到具有匹配签名的方法“myMethod”
类“MyClass”
我不知道如何向这个Scala类传递一个简单的向量。有人能帮我吗?
我还尝试使用Matlab的javaArray来解决这个问题,但即使这样也不起作用
我想我解决了这个问题: 首先,我更改了Scala类,如下所示:
class MyClass {
def myMethod(x: Array[java.lang.Double]): Double = {
val methodValue = for(i <- x.indices) yield { math.pow( x(i),2.0) }
methodValue.sum
}
}
class-MyClass{
def myMethod(x:Array[java.lang.Double]):Double={
val methodValue=for(i我想我解决了这个问题:
首先,我更改了Scala类,如下所示:
class MyClass {
def myMethod(x: Array[java.lang.Double]): Double = {
val methodValue = for(i <- x.indices) yield { math.pow( x(i),2.0) }
methodValue.sum
}
}
class-MyClass{
def myMethod(x:Array[java.lang.Double]):Double={
val methodValue=for(我只是想知道:您确定Matlab支持调用Scala方法/类吗?您可能想尝试将MyClass更改为对象。我没有理由认为myMethod是一个实例方法(它实际上需要两个参数:this和Seq[Double])是的,我很确定MATLAB会运行Scala类。我成功地运行了一个简单的“Hello World”类没有输入参数。我的问题只是将输入向量传递给我的类,这会产生签名不匹配错误。@Phasmid:将类更改为对象无助于解决主要问题。它只会更改最初从Matlab调用该对象或类的方式。其余的工作都是一样的。我们仍然需要传递向量即使在对象形式中,我们也会得到一个签名不匹配错误您是否尝试过将x声明为Any,然后打印x的类?这将帮助您了解Matlab传递的是什么类型的对象。只是想知道:您确定Matlab支持调用Scala方法/类吗?您可能想尝试将MyClass更改为对象。我看不出myMethod有什么理由成为实例方法(这基本上需要两个参数:this和Seq[Double])。是的,我非常确定MATLAB将运行Scala类。我成功地运行了一个简单的“Hello World”类没有输入参数。我的问题只是将输入向量传递给我的类,这会产生签名不匹配错误。@Phasmid:将类更改为对象无助于解决主要问题。它只会更改最初从Matlab调用该对象或类的方式。其余的工作都是一样的。我们仍然需要传递向量即使在对象形式中,我们也会得到一个签名不匹配错误。(我已经测试了这两种形式)您是否尝试过将x声明为Any,然后打印x的类?这将帮助您了解Matlab传递的是什么类型的对象。