Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将向量从Matlab传递到Scala类_Java_Matlab_Scala_Vector - Fatal编程技术网

Java 将向量从Matlab传递到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

我对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
    }

}
但我得到一个错误,说:

找不到具有匹配签名的方法“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传递的是什么类型的对象。