STATS 782 - Matrix


一、创建 Matrix

1. 使用 matrix()函数

R 语言中的矩阵是按列存储(column-major order storage)的。

> matrix(1:6, nrow = 3, ncol = 2)
	[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6

若想按行存储:

> matrix(1:6, nrow = 3, ncol = 2, byrow = TRUE)
	[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6

2. 使用cbind()/ rbind()

> cbind(1:3, 4:6)
	[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> rbind(1:3, 4:6)
	[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6

二、对 Matrix 的 value 进行操作

1. 获取 value

> (x = 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

> x[1:2, c(2,4)]
	[,1] [,2]
[1,] 4 10
[2,] 5 11

2. 修改 value

> x[1:2, c(2,4)] = 21:24
> x
	[,1] [,2] [,3] [,4]
[1,] 1 21 7 23
[2,] 2 22 8 24
[3,] 3 6 9 12

Matrix 的 value 可以像 vector 一样参与运算,从而进行修改:

> (x = matrix(1:4, nrow = 2, ncol = 2))
	[,1] [,2]
[1,] 1 3
[2,] 2 4
> x + x^2
	[,1] [,2]
[1,] 2 12
[2,] 6 20

3. apply()函数

Used to compute row or column summaries:
1 → 对行操作
2 → 对列操作

> x = matrix(1:4, nrow = 2, ncol = 2)
> x
     [,1] [,2]
[1,]    1    3
[2,]    2    4

> apply(x, 1, mean)
[1] 2 3

> apply(x, 2, function(x) sum(x^2))
[1]  5 25

4. sweep()函数

Used to sweep out computed summaries:

# 创建一个 3x4 的矩阵
mat <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), nrow = 3, ncol = 4)

# 计算矩阵的每列均值
col_means <- colMeans(mat)

# 从矩阵的每个元素中减去其所在列的均值
centered_mat <- sweep(mat, 2, col_means)

> centered_mat
     [,1] [,2] [,3] [,4]
[1,]   -1   -1   -1   -1
[2,]    0    0    0    0
[3,]    1    1    1    1

5. solve()函数

用于求解线性方程组或计算矩阵的逆。当提供一个矩阵作为参数时,solve() 函数计算该矩阵的逆矩阵(如果存在)。当提供一个线性方程组(由系数矩阵和常数向量表示)时,solve() 函数找到该线性方程组的解。

# 创建一个 2x2 方阵
mat <- matrix(c(2, 1, 3, 4), nrow = 2, ncol = 2)

# 计算矩阵的逆
inv_mat <- solve(mat)

# 创建一个线性方程组的常数向量
b <- c(5, 6)

# 解线性方程组:Ax = b,其中 A 是系数矩阵,x 是解向量,b 是常数向量
x <- solve(mat, b)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值