Matlab和R矩阵运算命令汇总

matlab 常用命令

矩阵创建

1
2
3
a=[1,2,3;4,5,6;7,8,9]
b=[1:1:3;4:1:6;7:1:9]
c=[linspace(1,3,3); linspace(4,6,3); linspace(7,9,3)]

全为1的矩阵

1
2
ones(3)
ones(3,4)

全为0的矩阵

1
2
zeros(3)
zeros(3,4)

在(0,1)区间均匀分布的随机阵

1
2
rand(3)
rand(3,4)

单位阵

1
eye()

均值为0,方差为1的标准正态分布随机矩阵

1
2
randn(3)
randn(3,4)

对角矩阵

1
2
diag([1,2,3,4])
diag([1,2,3,4],1)

利用小矩阵构建大矩阵

1
2
e=[a;b]
f=[a,b]

矩阵的拆分

1
2
3
4
5
6
a(2,2)
a(1,:)
a(:,3)
a(1:2,1:2)
a(1,1:end)
a(end,end)

矩阵的逆

1
inv(a)

行列式

1
det(a)

对角线元素

1
2
diag(a)
diag(a,1)

矩阵转置

1
a’

矩阵开方

1
2
sqrt(a)
a.^0.5

在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算,如:.*、./、.\和.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。

1
2
3
4
5
a.*b
a.\b
a./b
a.^2
a.^0.5

<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)

1
2
3
4
5
6
7
8
9
a<b
a<=b
a>b
a>=b
a==b
a~=b
a>5
a>=5
a==5

找出a中大于5的元素位置

1
find(a>5)

改变维数

1
2
a=[1:12]
reshape(a,3,4)

旋转90度

1
rot90(b)

左右翻转

1
fliplr(b) ; flipdim(b,2)

上下翻转

1
flipud(b) ; flipdim(b,1)

上三角元素

1
2
tril(c)
tril(c,1)

下三角元素

1
2
triu(c)
triu(c,-1)

确定矩阵的维数

1
size(b)

求矩阵的迹

1
trace(c)

R 常用命令

创建矩阵

1
2
3
4
a=matrix(c(1,2,3,4),ncol=2,byrow=T)
b=matrix(c(5,6,7,8),ncol=2,byrow=T)
c=matrix(c(1,2,3,4),ncol=2,byrow=F)
d=matrix(c(5,6,7,8),ncol=2)

矩阵线性运算

1
2
3
4
5
a+b
a-b
2*a
4*b
a*b

矩阵乘法

1
2
3
a%*%b
crossprod(a,b)
t(a)%*%b

矩阵转置

1
2
t(a)
t(b)

t()作用于向量上

1
2
3
x=c(1:12)
t(x)
t(t(x))

取方阵的对角线元素

1
diag(a)

求方阵的迹

1
sum(diag(a))

构造对角矩阵

1
c=diag(c(1,2,3,4))

矩阵求逆

1
solve(a)

矩阵的行列式

1
2
3
det(a)
det(b)
det(c)