【发布时间】:2015-06-16 01:17:53
【问题描述】:
我有一个名为 A 的对称矩阵(尺寸:12,000 X 12,000),我想根据公式创建另一个,这取决于元素的位置。解释: 我想使用以下公式创建 D 矩阵(基于 A 中的值):
Dij = 1 - (aij/sqrt(aii*ajj))
A 的一个小例子是:
A = matrix(c(1,0.5,0.4,0.3,0.2,0.5,1.1,0.5,0.4,0.3,0.4,0.5,1.2,0.5,0.6,0.3,0.4,0.5,1,0.2,0.2,0.3,0.6,0.2,1.2),ncol=5,nrow=5, byrow=T)
由于我有一个巨大的矩阵,最好的方法是什么?
【问题讨论】:
-
在询问之前您搜索/尝试了什么?
-
我无法立即找到一种快速或数学上优雅的方法来执行此操作,因此您可能会被
apply、mapply或sapply中的一个卡住。如果您对*apply函数系列感到不满意,那么 (a) 现在是深入研究的好时机,或者 (b)for循环可能会“正常工作”。