【问题标题】:The R %*% operatorR %*% 运算符
【发布时间】: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】:

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

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

http://matrixmultiplication.xyz/

【讨论】:

    【解决方案2】:

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

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

    from tutorialspoints

    【讨论】:

    • 正如其他答案已经说明的那样,它用于将任意两个矩阵相乘。不管你的教程网站说什么,是否转置都没关系。
    • > 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 工作得很好。
    • 我建议你读一读。例如,here's the wikipedia page on matrix multiplication。你不必读得很远——第 4 句给出了一致的论点要求。您还可以阅读 Definition 部分,发现定义中没有使用术语 transpose。
    【解决方案3】:

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

    来自the documentation:

    说明:

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

    用法:

    x %*% y
    

    参数:

    x、y   数字或复数矩阵或向量

    【讨论】:

      【解决方案4】:
      > 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
      

      【讨论】:

        猜你喜欢
        • 2012-05-10
        • 2018-11-10
        • 1970-01-01
        • 1970-01-01
        • 2022-06-29
        • 2012-08-12
        • 2012-07-20
        • 1970-01-01
        相关资源
        最近更新 更多