【问题标题】:How to generate a matrix based on a vector efficiently in DolphinDB?如何在 DolphinDB 中有效地基于向量生成矩阵?
【发布时间】:2020-07-24 22:59:00
【问题描述】:

我想从具有 10000 个元素的向量 (v) 生成一个 9000*1000 矩阵 (m)。具体来说,m的第i行是v[i:i+1000]。我使用了以下脚本,完成了 1.3 秒。我想知道有没有办法让它加速?

v = 1..10000
m = matrix(DOUBLE, 9000, 1000)
timer for(i in 0:9000) m[i,] = v[i:(i+1000)]

【问题讨论】:

    标签: matrix vector dolphindb


    【解决方案1】:

    矩阵在 DolphinDB 数据库中以列的主要顺序存储。因此,沿列的操作比沿行的操作效率更高。如果你重写你的代码如下

    v = 1..10000
    m = matrix(DOUBLE, 9000, 1000)
    timer for(i in 0:1000) m[i] = v[i:(i+9000)]
    

    只需要大约 20 毫秒即可完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 2019-11-09
      • 2013-12-02
      • 1970-01-01
      • 2014-10-16
      相关资源
      最近更新 更多