R%*%运算符

时间:2014-02-27 06:16:16

标签: r

这是什么?我使用?找不到帮助。 (抱歉愚蠢)

> 1%*%1
     [,1]
[1,]    1
> 10%*%10
     [,1]
[1,]  100
> c(1:2)%*%c(1:2)
     [,1]
[1,]    5

4 个答案:

答案 0 :(得分:11)

这是一个矩阵乘法运算符!

来自the documentation

  

说明

     

将两个矩阵相乘,如果它们是一致的。如果一个参数是一个向量,它将被提升为行或列矩阵,以使两个参数一致。如果两者都是相同长度的向量,它将返回内积(作为矩阵)。

     

<强>用法:

x %*% y
     

<强>参数:

     

xy数字或复杂矩阵或向量

答案 1 :(得分:5)

> 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。 1-col矩阵并将它们相乘。

它也是两个向量之间的内部(或点​​)产品,在线性代数,计算几何和许多其他应用中得到广泛应用。

http://en.wikipedia.org/wiki/Dot_product

BTW,矢量必须在相同的空间(相同的维数)

> c(1,2,3) %*% c(4,5,6,7)
Error in c(1, 2, 3) %*% c(4, 5, 6, 7) : non-conformable arguments

答案 2 :(得分:0)

我创建了一个问题“ R中%*%运算符的后面是什么计算?”被标记为该问题的重复项。 %*%运算符用于将两个矩阵相乘。我没有意识到“矩阵乘法”是一种既定的代数方法,因此学习基础计算很有用,此处尚未在其他答案中明确描述。传递重复问题中评论的有用链接

https://en.m.wikipedia.org/wiki/Matrix_multiplication#Definition

http://matrixmultiplication.xyz/

From Matrix Multiplication Wikipedia Page

答案 3 :(得分:-1)

此运算符用于将矩阵与其转置相乘。

M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)

t = M %*% t(M)

print(t)

from tutorialspoints