ojAlog - Kotlin中的ConvexSolver:2d阵列

时间:2018-06-15 19:37:30

标签: kotlin convex-optimization ojalgo

我正在尝试实施一些示例,因为我计划探索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)

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

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

谢谢。

1 个答案:

答案 0 :(得分:0)

DoubleArray构造函数将数组大小作为第一个参数,这就是构造无效的原因。 Kotlin中double[][]的类似物是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)