广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >R语言中向量和矩阵简单运算的实现
  • 817
分享到

R语言中向量和矩阵简单运算的实现

2024-04-02 19:04:59 817人浏览 泡泡鱼
摘要

一、向量运算 向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量。   1.R语言向量的产生方法 &

一、向量运算

向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量。

  1.R语言向量的产生方法


> x <- c(1,2,3)
> x
[1] 1 2 3

 2.向量加减乘除都是对其对应元素进行的,例如下面


> x <- c(1,2,3)
> y <- x*2
> y
[1] 2 4 6

(注:向量的整数除法是%/%,取余是%%。)

3.向量的内积,有两种方法。

第一种方法:%*%


> x <- c(1,2,3)
> y <- c(4,5,6)
> z <- x%*%y
> z
   [,1]
[1,]  32

第二种方法:crossprod(x,y).


> x <- c(1,2,3)
> y <- c(4,5,6)
> z <- crossprod(x,y)
> z
   [,1]
[1,]  32

4.向量的外积 ,有三种方法。

第一种方法:%o%


> x <- c(1,2,3)
> y <- c(4,5,6)
> x%o%y
   [,1] [,2] [,3]
[1,]  4  5  6
[2,]  8  10  12
[3,]  12  15  18

第二种方法:tcrossprod(x,y)


> x <- c(1,2,3)
> y <- c(4,5,6)
> tcrossprod(x,y)
   [,1] [,2] [,3]
[1,]  4  5  6
[2,]  8  10  12
[3,]  12  15  18

第三种方法:outer(x,y)


> x <- c(1,2,3)
> y <- c(4,5,6)
> outer(x,y)
   [,1] [,2] [,3]
[1,]  4  5  6
[2,]  8  10  12
[3,]  12  15  18

二、矩阵的运算

1. 矩阵的产生方式


> x <- matrix(1:9,3,3)
> x
   [,1] [,2] [,3]
[1,]  1  4  7
[2,]  2  5  8
[3,]  3  6  9

其中第一个3表示的是行数,第二个3表示的列数。 故产生一个3*3的矩阵。这里是将1到9按列排列,如果想按行排列,那么如下代码


> x <- matrix(1:9,3,3,byrow = TRUE)
> x
   [,1] [,2] [,3]
[1,]  1  2  3
[2,]  4  5  6
[3,]  7  8  9

2.矩阵对应元素的运算


> x <- matrix(1:9,3,3)
> y <- matrix(9:1,3,3)
> x*y
   [,1] [,2] [,3]
[1,]  9  24  21
[2,]  16  25  16
[3,]  21  24  9

3.矩阵的转置


> x <- matrix(1:9,3,3)
> x
   [,1] [,2] [,3]
[1,]  1  4  7
[2,]  2  5  8
[3,]  3  6  9
> t(x)
   [,1] [,2] [,3]
[1,]  1  2  3
[2,]  4  5  6
[3,]  7  8  9

4.矩阵乘法


> x <- matrix(1:9,3,3)
> y <- matrix(9:1,3,3)
> x%*%y
   [,1] [,2] [,3]
[1,]  90  54  18
[2,] 114  69  24
[3,] 138  84  30

5.矩阵 x乘y的转置,x的转置乘以y


> x <- matrix(1:9,3,3)
> y <- matrix(9:1,3,3)
> crossprod(x,y)
   [,1] [,2] [,3]
[1,]  46  28  10
[2,] 118  73  28
[3,] 190 118  46
#这个是x的转置乘以y
> tcrossprod(x,y)
   [,1] [,2] [,3]
[1,]  54  42  30
[2,]  72  57  42
[3,]  90  72  54
#这个是x乘以y的转置

6.求矩阵的行列式、对称矩阵的特征值、特征向量


> x <- matrix(1:9,3,3)
> x
   [,1] [,2] [,3]
[1,]  1  4  7
[2,]  2  5  8
[3,]  3  6  9
> det(x)
[1] 0
#这个是求特征值的
> x <- matrix(1:9,3,3)
> x
   [,1] [,2] [,3]
[1,]  1  4  7
[2,]  2  5  8
[3,]  3  6  9
> a <- crossprod(x,x)
> a1 <- eigen(a)  #这个是得到对称矩阵特征值、特征向量的主要函数
> a1
eigen() decomposition
$`values`  #这个是特征值
[1] 2.838586e+02 1.141413e+00 6.308738e-15
 
$vectors   #这个是特征向量
      [,1]    [,2]    [,3]
[1,] -0.2148372 0.8872307 0.4082483
[2,] -0.5205874 0.2496440 -0.8164966
[3,] -0.8263375 -0.3879428 0.4082483

到此这篇关于R语言中向量和矩阵简单运算的实现的文章就介绍到这了,更多相关R语言向量运算和矩阵运算内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网! 

--结束END--

本文标题: R语言中向量和矩阵简单运算的实现

本文链接: https://www.lsjlt.com/news/121438.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • R语言中向量和矩阵简单运算的实现
    一、向量运算 向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量。   1.R语言向量的产生方法 &...
    99+
    2022-11-11
  • C++矩阵运算的实现简单
    利用C++实现矩阵的构造,通过运算符的重载实现矩阵的乘法、加法等。并且实现矩阵形状的打印,矩阵的打印。 #include<iostream> #include<...
    99+
    2022-11-12
  • 怎么在R语言项目中实现一个向量和矩阵
    这期内容当中小编将会给大家带来有关怎么在R语言项目中实现一个向量和矩阵,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、向量运算向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(...
    99+
    2023-06-08
  • R语言中向量的加法和乘法运算
    在R语言中,不同长度的向量也是可以相加和相乘的,乘法的规则和加法类似 1,相同长度的向量相加 > x<- 1:4 > y<- 1:4 > z<...
    99+
    2022-11-12
  • 纯c语言优雅地实现矩阵运算库的方法
    目录1.一个优雅好用的c语言库必须满足哪些条件2.实现一个矩阵运算库的几点思考(1)采用预定义的数据类型,避免直接使用编译器定义的数据类型(2)基于对象编程,定义矩阵对象(3)除了特...
    99+
    2022-11-12
  • R语言中向量加法和乘法运算的示例分析
    这篇文章给大家分享的是有关R语言中向量加法和乘法运算的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在R语言中,不同长度的向量也是可以相加和相乘的,乘法的规则和加法类似1,相同长度的向量相加>&nb...
    99+
    2023-06-14
  • python中使用numpy包的向量矩阵相乘np.dot和np.matmul实现
    目录1.向量和矩阵2.向量和向量乘法1.* 对应对应位置相乘2.广播机制3.向量点乘np.dot3.矩阵和向量乘法1.对应位置相乘2.矩阵乘法4.矩阵矩阵乘法 1.直接相乘...
    99+
    2023-02-15
    numpy np.dot np.matmul numpy向量矩阵相乘
  • 自然语言处理中的算法优化:如何实现词向量模型?
    自然语言处理(Natural Language Processing, NLP)是人工智能领域的一个重要分支。在NLP中,词向量模型是实现文本分类、聚类、情感分析等任务的基础。而优化词向量模型的算法,是提高NLP算法效果的关键之一。本文将介...
    99+
    2023-08-27
    编程算法 自然语言处理 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作