主要包括以下内容:
创建矩阵向量;矩阵加减,乘积;矩阵的逆;行列式的值;特征值与特征向量;QR分解;奇异值分解;广义逆;backsolve与fowardsolve函数;取矩阵的上下三角元素;向量化算子等.
1 创建一个向量
在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> 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 113 矩阵转置
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,] 104 矩阵相加减
在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 05 数与矩阵相乘
A为m×n矩阵,c>0,在R中求cA可用符号:“*”,例如:> c=2
> c*A [,1] [,2] [,3] [,4]
[1,] 2 8 14 20
[2,] 4 10