r - 矩阵乘法-不合格矩阵的宽松定义

标签 r matrix

假设我们有以下内容:

x <- matrix(1:9, nrow=3)
y <- c(1,2,3)
x%*%y
y%*%x

为什么矩阵乘法不是未定义的?我们知道x是3 x 3矩阵,而y是1 x 3矩阵。因此,不应定义x %*% y,并且y %*% x应该为1 x 3矩阵。

最佳答案

幸运的是(或不幸的是,根据情况而定)许多R运算符(处于默认状态)被重载并在“幕后”执行各种操作-在此示例中,%*%R的默认功能自动将y强制转换为矩阵,尺寸将起作用。当您键入

x %*% y 

它使y为3 x 1矩阵,当您键入
y %*% x 

它使y成为1 x 3矩阵。

尝试将它们与您键入时的内容进行比较
x %*% as.matrix(y) 


t(as.matrix(y)) %*% x

分别

关于r - 矩阵乘法-不合格矩阵的宽松定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14158985/

相关文章:

r - 区别 : "Compile PDF" button in RStudio vs. knit() 和 knit2pdf()

r - 带有 PROJ 的 R 警告中的 spTransform()

loops - 在 Smalltalk 中迭代矩阵元素并在返回 true 时停止

python - 将元素插入 numpy 数组并获取所有滚动排列

r - 每 N 列拆分数据并使用 R 进行 rbind

r - 无法指定带空格的列名

algorithm - 寻找所有回文子串的动态规划

java - 用文件中的内容填充矩阵

python - 如何从 'column' 快速获取 'matrix' ? (不一定是数字)

为 ARM (Raspberry Pi) 交叉编译 R