Matlab中的diag、tril、triu函数用法
1.diag函数生成对角矩阵
>> diag([1,2,3,4]) %默认是主对角线,列向量行向量都行
ans =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
v:从主对角线位移,正表示上移
>> v = 1;
>> X = diag([1,2,3],v)
X =
0 1 0 0
0 0 2 0
0 0 0 3
0 0 0 0
2.diag函数读取矩阵对角线
>> diag(ans) %接上
ans =
1
2
3
4
v:从主对角线位移,正表示上移
A =
1 2 3
4 5 6
7 8 9
11 12 13
>> v = 1;
>> diag(A,v)
ans =
2
6
3. tril与triu
这两个函数与diag用法相似,但不能生成矩阵
A =
1 2 3
4 5 6
7 8 9
% 抽取矩阵的上三角【tri表示三角,u是up表示上】
>> triu(A)
ans =
1 2 3
0 5 6
0 0 9
% 抽取矩阵的下三角【tri表示三角,l是low表示下】
>> tril(A)
ans =
1 0 0
4 5 0
7 8 9
总结:
生成矩阵 diag(向量,位移)
读取矩阵 diag(矩阵,位移)【返回行向量】
抽取矩阵A对角线成新矩阵:diag(diag(A))
抽取矩阵 tril(矩阵,位移)【triu同理】
|