R中的矩阵点积

时间:2017-09-14 02:39:42

标签: r dot-product

我想知道如何使用点积。

b = matrix(1:70, ncol=7)
g= matrix(1:48, ncol=6)
resulta = matrix(0,6,7)
for (c in 1:ncol(b)){
  for (i in 1:ncol(g)){
    resulta[i,c] <- sum((g[,i]) * (b[,c]))
  }
}

警告讯息:

1: In (g[, i]) * (b[, c]) :
  longer object length is not a multiple of shorter object length
2: In (g[, i]) * (b[, c]) :
  longer object length is not a multiple of shorter object length

...........................共42条相似的消息

1 个答案:

答案 0 :(得分:2)

每当你乘以矩阵时,你必须确保尺寸是这样的,第一个矩阵的#columns与第二个#rows的相同,即如果第一个矩阵是a x b,第二个矩阵必须是{{1} }(c和a可能相等或不相等),以便得到的矩阵为b x c

在您的情况下,矩阵b为a x c,意味着矩阵g应为70 x 7矩阵。换句话说,矩阵g应该恰好有7行。

修复尺寸后,请尝试快速矩阵乘法:
7 x something
resulta <- b %*% g