矩阵乘以矢量在R中的应用

矩阵乘以矢量在R中的应用

矩阵是一个二维的结构,而向量是一个一维的结构。在这篇文章中,我们将使用R编程语言将给定的矩阵与给定的向量相乘。当向量元素与矩阵元素逐列相乘时,二者之间会发生相乘。

方法

  • 创建一个矩阵
  • 创建一个向量
  • 将它们相乘
  • 显示结果。

方法1:天真烂漫的方法

一旦结构准备好了,我们直接用乘法运算符(*)将它们相乘。

例子

# create a vector for matrix elements
vector1=c(1,2,3,4,5,6,7,8,9,10,11,12)
  
# Create A matrix with 2 rows and 6 columns
matrix1 <- matrix(vector1, nrow=2,ncol=6) 
  
# multiplication vector
mul_vec=c(1,2,3,4)
  
# print multiplication result
print(matrix1*mul_vec)
R

输出

矩阵乘以矢量在R中的应用

例2 :

# create a vector for matrix elements
vector1=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
  
# Create A matrix with 4 rows and 4 columns
matrix1 <- matrix(vector1, nrow=4,ncol=4) 
print(matrix1)
  
mul_vec=c(1,2,3,4)
  
print("Result")
print(matrix1*mul_vec)
R

输出

矩阵乘以矢量在R中的应用

例3 :

这段代码中的矩阵和向量都有相同的大小

# create a vector for matrix elements
vector1=c(1,2,3,4)
  
# Create A matrix with 2 rows and 2 columns
matrix1 <- matrix(vector1,nrow=2,ncol=2) 
print(matrix1)
  
mul_vec=c(1,2,3,4)
  
print("Result")
print(matrix1*mul_vec)
R

输出

矩阵乘以矢量在R中的应用

方法2:使用sweep( )方法

我们可以使用sweep()方法将向量与矩阵相乘。sweep()函数用于将 “+或-或’*’或’/'”操作应用于给定矩阵中的行或列。

语法

sweep(data, MARGIN, FUN)

参数

  • data=输入矩阵
  • MARGIN:MARGIN=2表示行;MARGIN=1表示列。
  • FUN:要进行的操作(例如:+或-或*或/)。

这里,我们要进行 “*”操作

例子

# create matrix with 15 elements
matrix1 <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15),
                  nrow=3,byrow=TRUE)
print(matrix1)
print("---------------")
  
# create a vector
vector1 <- c(1,2,3,4,5)
  
# apply sweep operation that multiplies row 
# wise(margin=2)
print(sweep(matrix1, MARGIN=2,vector1, `*`))
print("---------------")
  
# create elements with vector 2
vector2 <- c(1,2,3)
  
# apply sweep operation that multiplies column
# wise with vector 2(margin=1)
print(sweep(matrix1, MARGIN=1,vector2, `*`))
R

输出

矩阵乘以矢量在R中的应用

例2 :

# create matrix with 8 elements
matrix1 <- matrix(c(1,2,3,4,5,6,7,8),
                  nrow=2,byrow=TRUE)
print(matrix1)
print("---------------")
  
# create a vector
vector1 <- c(1,2,3,4)
  
# apply sweep operation that multiplies 
# row wise(margin=2)
print(sweep(matrix1, MARGIN=2,vector1, `*`))
print("---------------")
  
# create elements with vector 2
vector2 <- c(1,2)
  
# apply sweep operation that multiplies column 
# wise with vector 2(margin=1)
print(sweep(matrix1, MARGIN=1,vector2, `*`))
R

输出

矩阵乘以矢量在R中的应用

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册