R语言 矩阵乘法

R语言 矩阵乘法

矩阵乘法是最有用的矩阵操作。它被广泛应用于网络理论、坐标转换等领域,如今还有很多用途。R语言中的矩阵可以用 matrix() 函数来创建,该函数以输入矢量、nrow、ncol、byrow、dimnames为参数。

创建矩阵

可以用matrix()函数来创建一个矩阵。

# R program to create a matrix
m <- matrix(1:8, nrow=2)
print(m)

输出:

     [,1] [,2] [,3] [,4]
[1,]    1    3    5    7
[2,]    2    4    6    8

矩阵的乘法

乘法运算符 * 用于矩阵与标量相乘或两个矩阵的元素相乘。

与标量 相乘

如果你将一个矩阵与一个标量值相乘,那么矩阵的每个元素都将与该标量相乘。

例子:

# 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

矩阵之间的乘法

当一个矩阵与另一个矩阵相乘时,会发生两个矩阵的元素相乘。在两个矩阵的维度相同的条件下,两个矩阵的所有相应元素将被相乘。

例子:

# 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

与矢量相乘
如果一个矩阵与一个矢量相乘,那么矢量将被提升为行或列矩阵,以使两个参数相符。

例子:

# 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

例子:

# 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程