我想知道如何使用点积。
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条相似的消息
答案 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