R语言学习——矩阵相关函数

这篇具有很好参考价值的文章主要介绍了R语言学习——矩阵相关函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.diag()函数

 2.eigen()函数

3.svd()函数

4.qr()函数

 5.dim()函数

6.nrow()函数

7.ncol()函数

8.cbind()函数与rbind()函数

 9.as.vector()函数与as.matrix()函数

10.solve()函数

11.aperm()函数

12. apply()函数


1.diag()函数

(1)作用一:求矩阵对角线元素(返回值为一个向量)

t = matrix(1:9,nc = 3);t
diag(t)#返回对角元

结果展示

as.vector函数,r语言,学习,矩阵

 (2)作用二:把向量转化为对角阵

diag(c(1,2,4,5,8))

结果展示

as.vector函数,r语言,学习,矩阵

或者

diag(2,3,4)#生成对角线全为2,大小为3*4的矩阵

结果展示

as.vector函数,r语言,学习,矩阵 

 2.eigen()函数

·eigen英文的中文含义就是“本征”的含义,用于求一个矩阵的特征值和特征向量。、

z = matrix(c(1,0,0,1),nc = 2);z
eigen(z)

结果展示

as.vector函数,r语言,学习,矩阵

 其中values是特征向量,vectors是特征向量

3.svd()函数

svd()函数可以对矩阵进行奇异值分解

z = matrix(c(0,1,1,0),nc = 2);z
svd(z)

结果展示

as.vector函数,r语言,学习,矩阵

4.qr()函数

z = matrix(c(1,0,0,1),nc = 2);z
qr(z)

结果展示

as.vector函数,r语言,学习,矩阵

 5.dim()函数

dim()函数求矩阵的秩

> z
     [,1] [,2]
[1,]    1    0
[2,]    0    1
> dim(z)#求矩阵的秩
[1] 2 2

6.nrow()函数

> z
     [,1] [,2]
[1,]    1    0
[2,]    0    1
> nrow(z)#求矩阵的行数
[1] 2

7.ncol()函数

> z
     [,1] [,2]
[1,]    1    0
[2,]    0    1
> ncol(z)#求矩阵的列数
[1] 2

8.cbind()函数与rbind()函数

首先创建两个矩阵

> a = matrix(c(1,1,2,0),nc = 2);a
     [,1] [,2]
[1,]    1    2
[2,]    1    0
> b = matrix(c(1,0,0,1),nc = 2);b
     [,1] [,2]
[1,]    1    0
[2,]    0    1

运用cbind()函数,把第二个矩阵链接在第一个矩阵的最后一列之后

cbind(a,b)#按列拼接,需要行数相同

结果为

as.vector函数,r语言,学习,矩阵

运用rbind()函数,把第二个矩阵链接在第一个矩阵的最后一行之后

rbind(a,b)#按行拼接,需要列数相同

结果为

as.vector函数,r语言,学习,矩阵

 9.as.vector()函数与as.matrix()函数

(1)as,vector()可以把矩阵转化为向量

a = matrix(1:4,nc = 2);a
as.vector(a)

结果为

as.vector函数,r语言,学习,矩阵

 (2)as.matrix()可以把矩阵转化为矩阵

as.matrix(1:4)

结果为

as.vector函数,r语言,学习,矩阵

10.solve()函数

(1)求矩阵的逆矩阵

a = matrix(c(1,1,2,0),nc = 2);a
     [,1] [,2]
[1,]    1    2
[2,]    1    0
> solve(a)
     [,1] [,2]
[1,]  0.0  1.0
[2,]  0.5 -0.5

(2)求 AX = B方程的解

A = matrix(c(1,1,1,0),nc = 2);A
     [,1] [,2]
[1,]    1    1
[2,]    1    0
> B = c(1,1);B
[1] 1 1
> solve(A,B)
[1] 1 0

11.aperm()函数


aperm()函数能够转换广义矩阵的维度

m = array(1:24,c(2,3,4));m
aperm(m,c(2,3,1))

结果为

 m = array(1:24,c(2,3,4));m
, , 1

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

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

, , 3

     [,1] [,2] [,3]
[1,]   13   15   17
[2,]   14   16   18

, , 4

     [,1] [,2] [,3]
[1,]   19   21   23
[2,]   20   22   24

> aperm(m,c(2,3,1))
, , 1

     [,1] [,2] [,3] [,4]
[1,]    1    7   13   19
[2,]    3    9   15   21
[3,]    5   11   17   23

, , 2

     [,1] [,2] [,3] [,4]
[1,]    2    8   14   20
[2,]    4   10   16   22
[3,]    6   12   18   24

aperm()函数的参数c(2,3,1)可以理解为对矩阵的维数进行转换

维数c(2,3,4)转换为c(3,4,2),具体位置的转化为【i,j,k】——>【j,k,i】

12. apply()函数

apply(
  x # 数组或矩阵
  MARGIN #应用函数的方向,1行2列 
  FUN # 应用的函数
)

应用实例:求矩阵每列平均数文章来源地址https://www.toymoban.com/news/detail-732213.html

> x = matrix(c(1:12),nc = 4);x
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
> apply(x,2,mean)#求每列的平均数
[1]  2  5  8 11

到了这里,关于R语言学习——矩阵相关函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《算法导论》学习(十八)----动态规划之矩阵链乘(C语言)

    本文主要讲解了动态规划中的矩阵链乘问题:给定一个矩阵链,得到它的最小代价计算次序。给出了动态规划方案的分析,并且给出了C语言实现。 给定一个n个矩阵的序列(矩阵链) A 1 , A 2 , A 3 , A 4 , . . . , A n A_1,A_2,A_3,A_4,...,A_n A 1 ​ , A 2 ​ , A 3 ​ , A 4 ​ , ... , A n ​ ,现在

    2024年02月06日
    浏览(47)
  • C语言学习系列-->字符函数和字符串函数

    包含头文件: 函数 如果它的参数复合下列条件就返回真(一个非零数字) iscntrl 任何控制字符 任何控制字符 空白字符:空格’ ‘,换页’f’,换行’n’,回车’r’,制表符’t’或者垂直制表符’v’ isdigit 十进制数字0~9 isxdigit 十六进制数字,包括所有十进制数字,小

    2024年02月09日
    浏览(39)
  • C语言sscanf函数学习

    sscanf()与scanf()相比,scanf()以键盘(stdin)为输入源,sscanf()以第一个参数的固定字符串为输入源; sscanf()的头文件是 #include stdio.h; 函数原型:  int sscanf (char *str, char * format [, argument, ...]); 函数功能:用于从字符串中读取指定格式的数据 函数参数:参数str为要读取数据的字符串

    2024年02月10日
    浏览(48)
  • C语言学习 使用函数求素数和

    题目描述 本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。 输入两个正整数m和n(1≤m≤n≤500),求m和n之间的素数和。 素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。 要求定义并调用函数prime(p)判断p是否为素数

    2024年02月03日
    浏览(48)
  • C语言strcat函数再学习

    之前学习了strcat函数;下面继续学习此函数; 它的功能描述是, 功能 把src所指向的字符串(包括“\\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\\0”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。 说明 src和dest所

    2024年02月05日
    浏览(48)
  • C语言-基础语法学习-1 函数

    当我们需要在C语言中传递一维数组作为函数的形参时,需要了解以下几个关键点: 函数声明和定义:在声明和定义函数时,我们可以使用以下方式指定一维数组作为形参: 或者 这两种方式都允许我们传递一个一维数组作为形参。 数组传递:在C语言中,数组传递实际上是通

    2024年02月12日
    浏览(53)
  • R语言基本函数的学习(持续更新)

    目录 前言 Tidyverse包 arrange()函数 head()函数  filter()函数  select()函数

    2024年02月11日
    浏览(44)
  • C语言——qsort()函数_学习笔记

    qsort()函数是一个库函数,包含在头文件 stdliib.h中,用来对数据进行排序操作的函数,它可以排序 任意类型的数据 !!! qsort()函数排序是 从小到大 排序,内部是采用 快速排序 思想排序数据的。qsort()函数有四个参数,解释如下: 第一个参数 void* base 。类型是 void* 类型的,

    2024年02月09日
    浏览(38)
  • 前端学习C语言 - 函数和关键字

    本篇主要介绍: 自定义函数 、 宏函数 、 字符串处理函数 和 。 基本用法 实现一个 add() 函数。请看示例: 其中a, b 叫 形参 ,num1, num2 叫 实参 。 Tip :形参和实参的个数不同,笔者编译器报错如下(一个说给函数的参数少,一个说给函数的参数多了): 函数调用过

    2024年02月09日
    浏览(56)
  • C语言学习系列-->一篇带你看懂内存函数

    上篇文章学习了C语言字符串函数,只是对字符串进行操作 本节,小编整理了一下C语言中的内存函数,对内存进行操作,只针对会内存块,不针对数据 memcpy是对内存拷贝 拷贝的可能是字符串,也可能是整型数组 所以使用 void* 将source拷贝到destination,指定字节数为num code arr

    2024年02月09日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包