You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中%*%矩阵乘法运算符的工作原理解析请求

理解R语言中的%*%矩阵乘法运算符

嗨,我来帮你把这个%*%的原理讲明白~它在R里就是标准的矩阵乘法运算符,完全遵循线性代数里矩阵相乘的规则,咱们结合你的例子一步步拆解:

首先先明确你创建的矩阵M2:

M2 <- matrix(c(1,2,3,4),nrow = 2,ncol = 2,byrow = TRUE)

打印出来的M2是这样的:

[,1] [,2]
[1,]    1    2
[2,]    3    4

矩阵乘法的核心规则

当用%*%计算两个矩阵相乘时,结果矩阵中第i行第j列的元素,等于第一个矩阵的第i行和第二个矩阵的第j列对应元素相乘后求和。而且只有当第一个矩阵的列数等于第二个矩阵的行数时,才能进行这种运算(你的例子里两个都是2×2矩阵,刚好满足条件)。

针对你的例子一步步计算

咱们来手动算M2 %*% M2的每一个元素:

  • 结果矩阵的[1,1]位置:取M2的第一行(1, 2),乘以M2的第一列(1, 3),对应元素相乘再相加:1×1 + 2×3 = 1 + 6 = 7
  • 结果矩阵的[1,2]位置:取M2的第一行(1, 2),乘以M2的第二列(2, 4):1×2 + 2×4 = 2 + 8 = 10
  • 结果矩阵的[2,1]位置:取M2的第二行(3, 4),乘以M2的第一列(1, 3):3×1 + 4×3 = 3 + 12 = 15
  • 结果矩阵的[2,2]位置:取M2的第二行(3, 4),乘以M2的第二列(2, 4):3×2 + 4×4 = 6 + 16 = 22

这样算出来的结果就和你运行M2%*%M2得到的完全一致啦:

[,1] [,2]
[1,]    7   10
[2,]   15   22

最后补充个小提醒:别把%*%和R里的*搞混哦!*是元素-wise乘法,也就是两个矩阵对应位置的元素直接相乘,和矩阵乘法完全不是一回事~

内容的提问来源于stack exchange,提问作者Wenjia Zhai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:43:52