R中更快的数组乘法

时间:2019-05-16 19:21:44

标签: r

我正在尝试找出一种加快3D阵列乘法的方法。我目前正在使用For循环进行乘法。

假设我们有一个1 x 3 x 100,000的数组,第一个切片是:

function toTree(arr, item) {

        if (!item) {
            item = arr.find(item => item.parent === null)
        }

        let parent = {...item}
        parent.children = 
            arr.filter(x => x.parent === item.id)
                .sort((a, b) => a.id - b.id)
                .map(y => toTree(arr, y))

        return parent     
}

toTree(tasks)

我们有100,000片:

\begin{bmatrix}a_1&b_1&c_1\end{bmatrix}

我们想将其乘以3 x 3 x 100,000数组。假设我们有:

\begin{bmatrix}a_1&b_1&c_1\end{bmatrix} 
.....................
\begin{bmatrix}a_{100000}&b_{100000}&c_{100000}\end{bmatrix}

再次,100,000片。

目前,我正在使用具有100,000次迭代的For循环遍历切片(每个循环简单地进行1x3乘以3x3矩阵乘法)。

非常快。但是我想知道是否还有其他更快的方法?

3D Matrix Multiplication in R

在上面的文章中,whuber提出了一种使用稀疏矩阵的更快方法。但是,当尺寸增加时,他的方法会变慢。本质上,对于任何1 x n x p乘以n x n x p数组,我都想提出一种比简单的For循环更快的方法。

任何帮助将不胜感激!

0 个答案:

没有答案