R关于矩阵和数组

矩阵和数组

1. 定义矩阵

创建矩阵
在R中使用matrix命令来构建矩阵,将矩阵中的元素以向量形式赋值。
函数形式为matrix(,nrwo=,ncol=,byrow=)

  • nrow,代表行数
  • ncol,代表列数
  • byrow,填充方式
    byrow=FALSE,将向量以列的顺序填充
    byrow=TRUE,将向量以行的顺序填充
> A<-matrix(c(1,2,3,4,5,6),nrow = 2,ncol = 3,byrow=TRUE)
> A
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

合并行列
函数rbind()可以按照行合并,要求矩阵或数据表列数相同
函数cbind()可以按照列合并,要求矩阵或数据表行数相同

> B<-matrix(c(11:16),nrow = 2,ncol = 3,byrow = TRUE)
> B
     [,1] [,2] [,3]
[1,]   11   12   13
[2,]   14   15   16
>
> cbind(A,B)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    3    5   11   12   13
[2,]    2    4    6   14   15   16
>
> rbind(A,B)
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
[3,]   11   12   13
[4,]   14   15   16

2.构造子集

按照行列和对角线提取元素
按照行列提取以及删除、改写具体矩阵元素的方法与R读书笔记2中向量的处理方法雷同。
这里只介绍关于提取矩阵对角线的元素(前提矩阵是行列数相等的方阵)

> C<-matrix(c(1:9),nrow = 3,ncol = 3,byrow=TRUE)
> C
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
> diag(C)
[1] 1 5 9

3.矩阵运算

矩阵的转置
直接使用函数 t() 即可
创建单位矩阵
使用函数 diag() 即可

> diag(3)
     [,1] [,2] [,3]
[1,]    1    0    0
[2,]    0    1    0
[3,]    0    0    1

矩阵的乘法
注意在矩阵乘法中,注意相乘时的顺序,矩阵相乘不遵守交换律,m×n阶的矩阵与p×q阶矩阵相乘,必须满足n=p
矩阵乘法符号写作 %*%

> A<-rbind(c(2,5,2),c(6,1,4))
> B<-cbind(c(3,-1,-1),c(-3,1,5))
> A%*%B
     [,1] [,2]
[1,]   -1    9
[2,]   13    3
> B%*%A
     [,1] [,2] [,3]
[1,]  -12   12   -6
[2,]    4   -4    2
[3,]   28    0   18

逆矩阵
直接使用函数 solve() 即可,需要注意矩阵需要为方阵

> A
     [,1] [,2]
[1,]    2    5
[2,]    6    1
> solve(A)
            [,1]        [,2]
[1,] -0.03571429  0.17857143
[2,]  0.21428571 -0.07142857

4.多维矩阵

在R中,使用array函数构成多维矩阵
在其中dim选项中,按照顺序分别为c(行,列,层)
在这里插入图片描述

> AR<-array(c(1:24),dim = c(3,4,2))
> AR
, , 1

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

, , 2

     [,1] [,2] [,3] [,4]
[1,]   13   16   19   22
[2,]   14   17   20   23
[3,]   15   18   21   24

提取矩阵相应的子集的方法同二维矩阵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值