矩阵

来源:互联网 发布:丹特丽安的书架 知乎 编辑:程序博客网 时间:2024/06/05 04:50
#构造矩阵
a=matrix(c(1,2,3,4),ncol=2,byrow=T)
b=matrix(c(5,6,7,8),ncol=2,byrow=F)
nrow表示行数;ncol表示列数;byrow表示按行排列
#c(a)表示“按列拉直”矩阵a
#cbind()把自变量横向拼成一个大矩阵
x1=rbind(c(1,2),c(3,4))
rbind()表示把自变量纵向拼成一个大矩阵

#访问矩阵元素和子矩阵

a[3,3] 表示取矩阵a的三行三列的数
a[-3,]表示删去矩阵a的第三行
a[1:2,c(1,2,3)]表示访问矩阵a的一二行和第一二三列

#矩阵运算


#线性运算

a+b

a-b
2*a
2*b
a*b
#矩阵乘法
a%*%b
#a的转置跟b相乘
crossprod(a,b) 等价于t(a)%*%b
#矩阵转置
t(a);t(b)
#取方阵的对角元素
diag(a);sum(diag(a)
c=diag(c(1,2))
diag(a)  表示矩阵a中的对角线,此时得到的是数值
diag(diag(a)) 表示只保留a的对角线,其他位置都为0,此时得到的是矩阵
diag(4) 产生一个四阶的单位矩阵, 即此时矩阵对角线上的值全部为1,其他位置为0
#矩阵求逆
solve(a)
其中如果解方程(线性方程组):a为矩阵,b为向量【即有,ax=b
solve(a,b)
#矩阵的行列式
det(a);det(b);det(c)
#求矩阵a的函数特征值和特征向量
eigen(a,symmetric=T)
#apply函数
apply(x,margin,fun,...)
margin=1表示对每行计算,margin=2表示对每列进行计算,fun是用来计算的函数
apply(a,1,sum)
0 0