ojAlog - Kotlin 中的 ConvexSolver:二维数组

ojAlog - ConvexSolver in Kotlin: 2d Array

我正在尝试实现一些示例,因为我正计划探索 ojAlgo 以进行优化。 我的问题很简单。

在Java中我可以轻松地写:

PrimitiveDenseStore Q = PrimitiveDenseStore.FACTORY.rows(new double[][]{{2.0,0.0}, {0.0, 2.0}});

我试着用 kotlin 做同样的事情:

val Q: Array<DoubleArray> = arrayOf(DoubleArray(2.0, 0.0), DoubleArray(2.0, 0.0))
var tmpQ = PrimitiveDenseStore.FACTORY.rows(Q)

但我给出的参数似乎不能调用 .rows。

也许我做了一些愚蠢的事情,但我会很感激你的帮助。

谢谢。

DoubleArray 构造函数将数组大小作为第一个参数,这就是您的构造无效的原因。 double[][]在Kotlin中的类比是Array<DoubleArray>,没错,但是应该这样构造:

val Q: Array<DoubleArray> = arrayOf(doubleArrayOf(2.0, 0.0), doubleArrayOf(2.0, 0.0))

更新:

看起来 rows 函数将 double[]... source 作为参数,所以在 Kotlin 中你可以使用扩展运算符:

val Q: Array<DoubleArray> = arrayOf(doubleArrayOf(2.0, 0.0), doubleArrayOf(2.0, 0.0))
var tmpQ = PrimitiveDenseStore.FACTORY.rows(*Q)