【发布时间】:2019-09-06 13:32:03
【问题描述】:
这是什么?我无法使用 ? 找到帮助。 (对不起,笨)
> 1%*%1
[,1]
[1,] 1
> 10%*%10
[,1]
[1,] 100
> c(1:2)%*%c(1:2)
[,1]
[1,] 5
【问题讨论】:
-
试着把它放在引号里?'%*%'
标签: r
这是什么?我无法使用 ? 找到帮助。 (对不起,笨)
> 1%*%1
[,1]
[1,] 1
> 10%*%10
[,1]
[1,] 100
> c(1:2)%*%c(1:2)
[,1]
[1,] 5
【问题讨论】:
标签: r
我创建了一个问题“R 中 %*% 运算符背后的计算是什么?”这被标记为这个问题的副本。 %*% 运算符用于将两个矩阵相乘。我没有意识到“矩阵乘法”是一种已建立的代数方法,因此学习基础计算很有用,此处其他答案中尚未明确描述。在重复问题中传递来自 cmets 的有用链接
https://en.m.wikipedia.org/wiki/Matrix_multiplication#Definition
【讨论】:
此运算符用于将矩阵与其转置相乘。
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)
【讨论】:
> M = matrix(c(3,2,5,3,4,5),3, 2) > M [,1] [,2] [1,] 3 3 [2,] 2 4 [3,] 5 5 > M %*% M Error in M %*% M : non-conformable arguments > M %*% t(M) [,1] [,2] [,3] [1,] 18 18 30 [2,] 18 20 30 [3,] 30 30 50 我认为如果矩阵自身相乘,转置很重要,否则 %*% 会产生错误stackoverflow.com/questions/33237043/…
m1 = matrix(1:4, ncol = 2) 和m2 = matrix(1:100, nrow = 2)。 m1 %*% m2 工作得很好。
这是一个矩阵乘法运算符!
说明:
将两个矩阵相乘,如果它们是一致的。如果一个参数是向量,它将被提升为行矩阵或列矩阵,以使两个参数一致。如果两者都是相同长度的向量,它将返回内积(作为矩阵)。
用法:
x %*% y参数:
x、y数字或复数矩阵或向量
【讨论】:
> c(1,2,3) %*% c(4,5,6)
[,1]
[1,] 32
> c(1,2,3) * c(4,5,6)
[1] 4 10 18
就像MadSeb说的,就是矩阵乘法算子。如果你给它两个向量,它会将它们强制为(逻辑)1 行和 1 列矩阵并将它们相乘。
它也是两个向量之间的内积(或点积),在线性代数、计算几何和许多其他应用中得到广泛应用。
http://en.wikipedia.org/wiki/Dot_product
顺便说一句,向量必须在相同的空间中(相同的维数)
> c(1,2,3) %*% c(4,5,6,7)
Error in c(1, 2, 3) %*% c(4, 5, 6, 7) : non-conformable arguments
【讨论】: