我想弄清楚如何点积。
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]))
}
}
Run Code Online (Sandbox Code Playgroud)
警告信息:
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
Run Code Online (Sandbox Code Playgroud)
..................... 共有 42 条相同消息
每当您将矩阵相乘时,您必须确保维度使得第一个矩阵的 #columns 与第二个矩阵的 #rows 相同,即如果第一个矩阵是a x b,则第二个矩阵必须是b x c(c 和 a 可能相等也可能不相等)所以结果矩阵是a x c。
在您的情况下,矩阵 b70 x 7表示矩阵 g 应该是一个7 x something矩阵。换句话说,矩阵 g 应该正好有 7 行。
一旦你固定了维度,试试这个快速矩阵乘法:
resulta <- b %*% g
resulta