【发布时间】:2017-01-21 04:11:44
【问题描述】:
DenseMatrix 类有一个 Array[V] 类型的参数数据。为什么不使用其他可以动态增长的可变集合,例如 Vector?
【问题讨论】:
-
只是猜测:可能是因为与本机库 (JNI) 的通信必须使用数组完成,AFAIK 你不能将任意集合传递给本机代码。
-
也可能是因为数组是最快的。为什么矩阵需要动态增长?矩阵不是总是有固定的尺寸吗?
-
@Raphael Roth 谢谢你的回复,你能指出一些与JNI通信的DenseMatrix方法吗?
-
@Jasper-M 你不能说数组在所有操作中都更快。例如,如何将列附加到由数组表示的矩阵?您必须创建一个新的,因此需要元素数量的线性时间。如果它是一个向量,那么 append 将花费一个常数时间(与一列中的元素数成线性关系)。
标签: scala immutability scala-breeze