我正在尝试实施一些示例,因为我计划探索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不能用我给出的参数调用。
也许我做了一些愚蠢的事情,但我很感激帮助。
谢谢。
答案 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)