热线电话:13121318867

登录
2018-11-01 阅读量: 842
用R进行矩阵运算(1)

最近整理了一份R中矩阵运算的笔记:

创建一个向量

在 R 中可以用函数 c()来创建一个向量,例如:

> x=c(1,2,3,4)

> x

[1] 1 2 3 4

2 创建一个矩阵

在 R 中可以用函数 matrix()来创建一个矩阵,应用该函数时需要输入必要的参数值。

> args(matrix)

function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames

= NULL)

data 项为必要的矩阵元素,nrow 为行数,ncol 为列数,注意 nrow 与 ncol 的乘积应为

矩阵元素个数,byrow 项控制排列元素时是否按行进行,dimnames 给定行和列的名称。

例如:

> matrix(1:12,nrow=3,ncol=4)

[,1] [,2] [,3] [,4]

[1,] 1 4 7 10

[2,] 2 5 8 11

[3,] 3 6 9 12

> matrix(1:12,nrow=4,ncol=3)

[,1] [,2] [,3]

[1,] 1 5 9

[2,] 2 6 10

[3,] 3 7 11

[4,] 4 8 12

> matrix(1:12,nrow=4,ncol=3,byrow=T)

[,1] [,2] [,3]

[1,] 1 2 3

[2,] 4 5 6

[3,] 7 8 9

[4,] 10 11 12

> rowname

[1] "r1" "r2" "r3"

> colname=c("c1","c2","c3","c4")

> colname

[1] "c1" "c2" "c3" "c4"

> matrix(1:12,nrow=3,ncol=4,dimnames=list(rowname,colname))

c1 c2 c3 c4

r1 1 4 7 10

r2 2 5 8 11

3 矩阵转置

A 为 m×n 矩阵,求 A'在 R 中可用函数 t(),例如:

> A=matrix(1:12,nrow=3,ncol=4)

> A

[,1] [,2] [,3] [,4]

[1,] 1 4 7 10

[2,] 2 5 8 11

[3,] 3 6 9 12

> t(A)

[,1] [,2] [,3]

[1,] 1 2 3

[2,] 4 5 6

[3,] 7 8 9

[4,] 10 11 12

若将函数 t()作用于一个向量 x,则 R 默认 x 为列向量,返回结果为一个行向量,例如:

> x

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

> t(x)

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

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

> class(x)

[1] "integer"

> class(t(x))

[1] "matrix"

若想得到一个列向量,可用 t(t(x)),例如:

> x

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

> t(t(x))

[,1]

[1,] 1

[2,] 2

[3,] 3

[4,] 4

[5,] 5

[6,] 6

[7,] 7

[8,] 8

[9,] 9

[10,] 10

> y=t(t(x))

> t(t(y))

[,1]

[1,] 1

[2,] 2

[3,] 3

[4,] 4

[5,] 5

[6,] 6

[7,] 7

[8,] 8

[9,] 9

[10,] 10

4 矩阵相加减

在 R 中对同行同列矩阵相加减,可用符号:“+”、“-”,例如:

> A=B=matrix(1:12,nrow=3,ncol=4)

> A+B

[,1] [,2] [,3] [,4]

[1,] 2 8 14 20

[2,] 4 10 16 22

[3,] 6 12 18 24

> A-B

[,1] [,2] [,3] [,4]

[1,] 0 0 0 0

[2,] 0 0 0 0

[3,] 0 0 0 0

0.0000
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子