gpt4 book ai didi

java - 将 vector 从 Matlab 传递到 Scala 类

转载 作者:太空宇宙 更新时间:2023-11-04 12:09:34 24 4
gpt4 key购买 nike

我在使用 Scala 并将 double vector 从 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
}

}

I've previously compiled this, matched java versions of my Matlab and JRE, and what ever needed

.

I have tested Seq[Double], Array[Double] and Vector[Double], but no progress was achieved

.

现在我想在 MATLAB 中调用此类并为其提供所需的行 vector 并获取其平方和值。

为此,我在 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])

但我收到一条错误消息:

No method 'myMethod' with matching signature found for class 'MyClass'.

我不知道如何将一个简单的 vector 传递给这个 Scala 类。有人可以帮我解决这个问题吗?

I also tried to use Matlab's javaArray to solve the problem but even that didn't work

最佳答案

嗯,我想我解决了这个问题:

首先,我按如下方式更改了我的 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
}

}

I used java.lang.Double format to make the Array[java.lang.Double] instead of Array[Double] which was in fact Array[scala.Double].

最后,在我的 Matlab 脚本中,我将所需的 vector 转换为 javaArray [查看 Matlab 文档],然后通常可以从 Matlab Mfile 运行 Scala 类:)

关于java - 将 vector 从 Matlab 传递到 Scala 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39977326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com