R中的矩阵乘法
矩阵乘法是最有用的矩阵运算。它被广泛应用于网络理论、坐标变换等领域。可以使用matrix()函数创建 R 中的矩阵,该函数将输入向量、nrow、ncol、byrow、dimnames 作为参数。
创建矩阵
可以使用 matrix()函数创建矩阵。
Python3
# R program to create a matrix
m <- matrix(1:8, nrow=2)
print(m)
Python3
# R program for matrix multiplication
# with a scalar
m <- matrix(1:8, nrow=2)
m <- 2*m
print(m)
Python3
# R program for matrix multiplication
# Creating matrices
m <- matrix(1:8, nrow=2)
n <- matrix(8:15, nrow=2)
# Multiplying matrices
print(m*n)
Python3
# R program for matrix multiplication
# Creating matrix
m <- matrix(1:8, nrow=2)
# Creating a vector
vec <- 1:2
# Multiplying matrix with vector
print(vec*m)
Python3
# R program for matrix multiplication
# Creating matrices
m <- matrix(1:8, nrow=2)
n <- matrix(8:15, nrow=4)
# Multiplying matrices using operator
print(m %*% n)
输出:
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
矩阵乘法
乘法运算符*用于将矩阵乘以两个矩阵的标量或元素乘法。
标量乘法
如果将矩阵与标量值相乘,则矩阵的每个元素都将与该标量相乘。
例子:
Python3
# R program for matrix multiplication
# with a scalar
m <- matrix(1:8, nrow=2)
m <- 2*m
print(m)
输出:
[,1] [,2] [,3] [,4]
[1,] 2 6 10 14
[2,] 4 8 12 16
在上面的代码中,标量与原始矩阵的每个元素相乘。这就是乘法过程的发生方式:
2*1=2 2*3=6 2*5=10 2*7=14
2*2=4 2*4=8 2*6=12 2*8=16
矩阵之间的乘法
当一个矩阵与另一个矩阵相乘时,会发生两个矩阵的元素乘法。在两个矩阵具有相同维度的条件下,两个矩阵的所有对应元素都将相乘。
例子:
Python3
# R program for matrix multiplication
# Creating matrices
m <- matrix(1:8, nrow=2)
n <- matrix(8:15, nrow=2)
# Multiplying matrices
print(m*n)
输出:
[,1] [,2] [,3] [,4]
[1,] 8 30 60 98
[2,] 18 44 78 120
这就是乘法过程的发生方式:
1*8=8 3*10=30 5*12=60 7*14=98
2*9=18 4*11=44 6*13=78 8*15=120
与向量相乘
如果一个矩阵与一个向量相乘,那么向量将被提升为行矩阵或列矩阵,以使两个参数一致。
例子:
Python3
# R program for matrix multiplication
# Creating matrix
m <- matrix(1:8, nrow=2)
# Creating a vector
vec <- 1:2
# Multiplying matrix with vector
print(vec*m)
输出:
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 4 8 12 16
这就是乘法过程的发生方式:
1*1=1 1*3=3 1*5=5 1*7=7
2*2=4 2*4=8 2*6=12 2*8=16
使用 %*%运算符的乘法
运算符%*%用于满足第一个矩阵的列数等于第二个矩阵的行数的条件的矩阵乘法。如果矩阵 A[M, N] 和矩阵 B[N, Z] 相乘,则结果矩阵的维数为 M*N。
例子:
Python3
# R program for matrix multiplication
# Creating matrices
m <- matrix(1:8, nrow=2)
n <- matrix(8:15, nrow=4)
# Multiplying matrices using operator
print(m %*% n)
输出:
[,1] [,2]
[1,] 162 226
[2,] 200 280
乘法是这样发生的:
1*8+3*9+5*10+7*11 = 162 1*12+3*13+5*14+7*15=226
2*8+4*9+6*10+8*11 = 200 2*12+4*13+6*14+8*15=280