【问题标题】:Change entries in matrix using entries of the matrix使用矩阵的条目更改矩阵中的条目
【发布时间】:2015-10-01 16:30:35
【问题描述】:

我试图通过添加相应的条目并将它们除以相应的对角线条目的总和 (tc[i,j]+tc[j,i])/ (tc[i,i]+tc[j,j])。我用循环尝试过,但它没有给我正确的值,更不用说使矩阵对称了。到目前为止,这是我的代码:

    for (i in 1:end){
      for(j in 1:end){
        tc[i,j]<-(tc[i,j]+tc[j,i])/(tc[i,i]+tc[j,j])
      }
    }

这可能是一个非常明显的错误,但我无法弄清楚。谁能帮我? =)

【问题讨论】:

  • 请提供一个可重现的例子
  • 什么是tc?你可以在上面使用命令 dput 吗?

标签: r loops matrix symmetric


【解决方案1】:

好吧,如果您考虑一下,您正在使用您已经更新的值求和(因为您正在循环每个 i 和 j)。

如果你创建一个与 tc 具有相同维度的新矩阵,然后运行你的循环。

newTc <- matrix(0, nrow=nrow(tc), ncol=ncol(tc))
for (i in 1:end){
  for(j in 1:end){
    newTc[i,j]<-(tc[i,j]+tc[j,i])/(tc[i,i]+tc[j,j])
  }
}

【讨论】:

  • 我今天早上确实这样做了,你的解释很有道理。我根本没有那样想,但你当然是完全正确的!谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-10-17
  • 2019-05-04
  • 2021-07-04
  • 2023-03-12
  • 2022-08-19
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
相关资源
最近更新 更多