我有一个向量v
。我正在尝试构建一个矩阵,其元素M[i][j]
取决于v[i]
和v[j]
。
执行此操作的'循环'方式如下(例如):
v = c(1:4)
M = matrix(0, nrow = length(v), ncol = length(v))
for(i in 1:length(v)){
for(j in i:length(v)){
M[i,j] = v[i] * v[j]
}
}
M
然后看起来像:
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 0 4 6 8
[3,] 0 0 9 12
[4,] 0 0 0 16
现在矩阵可以很容易地对称化。
然而,当v
变大时,这变得非常缓慢。考虑到这个问题是多么令人尴尬的并行,我希望有一种方法可以并行执行这项任务?
NB - 我对矢量元素执行的实际函数比乘法更复杂,但这只是一个不错的例子!