【问题标题】:R: subtraction of elements of a matrix from the elements of another matrixR:从另一个矩阵的元素中减去一个矩阵的元素
【发布时间】:2013-11-26 13:45:06
【问题描述】:

我正在尝试将方程应用于两个矩阵。由于我是 R 初学者,对我来说似乎很难。如果您能给我一些建议,我将不胜感激。

我有两个相似度矩阵:

> r
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    0    4    2    2    5    5
[2,]    4    0    8    3    3    2
[3,]    2    8    0    4    4    3
[4,]    2    3    4    0    0    3
[5,]    5    3    4    0    0    5
[6,]    5    2    3    3    5    0

> nr
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    0    4    7    2    4    3
[2,]    4    0    5    2    3    2
[3,]    7    5    0    3    2    2
[4,]    2    2    3    0    7    2
[5,]    4    3    2    7    0    5
[6,]    3    2    2    2    5    0

我想申请以下这些:

sum((r[i,j]-nr[i,j])^2)/6

我最大的问题是从元素r 中提取nr 的元素。 如果我将nr[i,j] 替换为一个数字,例如0.4,则以下内容完美:

s<-numeric()
for (i in 1:nrow(r))
{
  for (j in 1:ncol(r))
{
    s[k]<-sum((r[i,j]-0.4)^2)/6
}
}
> s
[1] 0.02666667

但我不知道如何修改此代码以解决原始问题。 我将不胜感激任何帮助/建议。 谢谢!

【问题讨论】:

  • 你试过简单的sum((r-nr)^2)/6吗?
  • 不,我没有。我没想到会这么简单。谢谢!

标签: r matrix equation-solving


【解决方案1】:

+-*/^ 等普通运算符执行元素明智的操作。因此,只需 (r - nr)^2/6 即可为您解决问题。

r
##      [,1] [,2] [,3]
## [1,]    2    2    2
## [2,]    2    2    2
## [3,]    2    2    2

nr
##      [,1] [,2] [,3]
## [1,]    3    3    3
## [2,]    3    3    3
## [3,]    3    3    3


r * nr
##      [,1] [,2] [,3]
## [1,]    6    6    6
## [2,]    6    6    6
## [3,]    6    6    6


r - nr
##      [,1] [,2] [,3]
## [1,]   -1   -1   -1
## [2,]   -1   -1   -1
## [3,]   -1   -1   -1


(r - nr)^2/6
##           [,1]      [,2]      [,3]
## [1,] 0.1666667 0.1666667 0.1666667
## [2,] 0.1666667 0.1666667 0.1666667
## [3,] 0.1666667 0.1666667 0.1666667

【讨论】:

  • 我不知道,这些运算符也可以应用于矩阵。非常感谢! :)
猜你喜欢
  • 1970-01-01
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
  • 2022-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-10
相关资源
最近更新 更多