當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R matmult 矩陣乘法


R語言 matmult 位於 base 包(package)。

說明

將兩個矩陣相乘(如果它們一致)。如果一個參數是向量,它將被提升為行或列矩陣以使兩個參數一致。如果兩者都是相同長度的向量,它將返回內積(作為矩陣)。

用法

x %*% y

參數

x , y

數值或複數矩陣或向量。

細節

當向量提升為矩陣時,其名稱不會提升為行或列名稱,與 as.matrix 不同。

當兩個選擇之一允許 xy 獲得一致的維度時,就會將向量提升為 1 行或 1 列矩陣。

該運算符是一個通用函數:可以單獨為其編寫方法,也可以通過 matOps 組通用函數編寫方法;它分派到 S3 和 S4 方法。需要為帶有兩個名為 xy 的參數的函數編寫方法。

雙矩陣或複矩陣乘積。使用drop 刪除隻有一層的維度。

注意

NaN/Inf 值的傳播、精度和矩陣乘積的性能可以通過 options("matprod") 控製。

例子

x <- 1:4
(z <- x %*% x)    # scalar ("inner") product (1 x 1 matrix)
drop(z)             # as scalar

y <- diag(x)
z <- matrix(1:12, ncol = 3, nrow = 4)
y %*% z
y %*% x
x %*% z

參考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

對於矩陣叉積,crossprod()tcrossprod() 通常更可取。 matrixArithmeticdiag

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Matrix Multiplication。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。