R: Matrix Multiplication (original) (raw)
matmult {base} | R Documentation |
---|
Description
Multiplies two matrices, if they are conformable. If one argument is a vector, it will be promoted to either a row or column matrix to make the two arguments conformable. If both are vectors of the same length, it will return the inner product (as a matrix).
Usage
x %*% y
Arguments
x, y | numeric or complex matrices or vectors. |
---|
Details
When a vector is promoted to a matrix, its names are not promoted to row or column names, unlike [as.matrix](../../base/help/as.matrix.html)
.
Promotion of a vector to a 1-row or 1-column matrix happens when one of the two choices allows x
and y
to get conformable dimensions.
This operator is a generic function: methods can be written for it individually or via the [matOps](../../base/help/S3groupGeneric.html)
group generic function; it dispatches to S3 and S4 methods. Methods need to be written for a function that takes two arguments named x
and y
.
Value
A double or complex matrix product. Use [drop](../../base/help/drop.html)
to remove dimensions which have only one level.
Note
The propagation of NaN/Inf values, precision, and performance of matrix products can be controlled by [options](../../base/help/options.html)("matprod")
.
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)The New S Language. Wadsworth & Brooks/Cole.
See Also
For matrix cross products, [crossprod](../../base/help/crossprod.html)()
andtcrossprod()
are typically preferable.[matrix](../../base/help/matrix.html)
, [Arithmetic](../../base/help/Arithmetic.html)
, [diag](../../base/help/diag.html)
.
Examples
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
[Package _base_ version 4.6.0 Index]