我正在尝试编写一个 R 脚本,作为第一步,dist()为输入矩阵的每一行计算和其他内容,然后作为脚本的第二步,使用在第一步中获得的每对输出矩阵来制作另一个计算。我的问题是我无法“保存”从第一步获得的所有矩阵。谁能告诉我一个好的策略?
我的代码如下所示:
n<- nrow (aa)
output <- matrix (0, n, n)
for (i in 1:n)
{
    for (j in i:n)
    {
        akl<- function (dii){
            ddi<- as.matrix (dii)
            m<- rowMeans(ddi)
            M<- mean(ddi)
            r<- sweep (ddi, 1, m)
            b<- sweep (r, 2, m)
            return (b + M)  
            }
        A<- akl(dist(aa[i,]))
        B<- akl(dist(aa[j,]))
            V <- sqrt ((sqrt (mean(A * A))) * (sqrt(mean(B * B))))
        if (V > 0) {
            output[i,j] <- (sqrt(mean(A * B))) / V else output[i,j] <- 0
            }
    }
}   
我想从akl函数中获取所有生成的矩阵,然后将它们用于其余的计算。我在这里展示的脚本在时间方面非常昂贵,因为它每次都计算 akl 并且对于大型输入矩阵是一个问题。