使用R在矩阵中存储循环的值

时间:2012-11-25 14:33:01

标签: r loops

A有以下矩阵

w= 
    0.0  0.0  0.0  0.3  0.4
    0.1  0.0  0.5  0.2  0.0
    0.0  0.3  0.0  0.0  0.0
    0.0  0.0  0.6  0.0  0.0
    0.0  0.0  0.0  0.5  0.0
c=
    0.1  0.0  0.00   0.0   0.00
    0.0  0.4  0.00   0.0   0.00
    0.0  0.0  0.25   0.0   0.00
    0.0  0.0  0.00   0.2   0.00
    0.0  0.0  0.00   0.0   0.05

x = seq(1, 1, length=5)
result = matrix()

我在R。中构建了一个循环:

nloop=10
for (i in 1:nloop)
{
    u=x %*% t(w) 

    x=(x %*% t(w))+((u) %*% t(c))

    x=1/(1+exp(x))

    result=matrix(nrow=10 , ncol = 5)
    for (i in 1:10)
    {
        result[[i]] =x 
    }
}

R返回此错误:

  

结果[[i]] = x中的错误:提供的元素多于其中的元素   替换

我想将每个循环的值存储在result矩阵

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。它不优雅,但它的工作原理。

result = vector("list") 

nloop=10
    for (i in 1:nloop)
    { 
    u=x %*% t(w) 
    x=(x %*% t(w))+((u) %*% t(c))
    x=1/(1+exp(1*x))
    result[[i]]=(x)
    }


 result=do.call(rbind, result)

感谢您的建议

答案 1 :(得分:1)

矩阵< - 矩阵(NcoI位= numberOfCols,nrow = numberOfRows);

矩阵[的rowNum,]< - 行; #rowNum是你要覆盖的行数。