matlab中的diag(diag(a))是什么意思?
取出a阵的对角元,构建一个以a对角元为对角的对角矩阵。
A =
1 2
3 4
>> diag(diag(A))
ans =
1 0
0 4
matlab中diag用法:= diag(v,k)
以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。
Matlab中该函数语法:
X = diag(v,k)
其中v是一个含有n个元素的向量,该调用格式可以构造一个n+abs(k)阶的方阵X。并把v作为方阵X的第k条对角线(k大于0,表示主对角线上方的第k条对角线,k小于0表示主对角线下侧的第k条对角线,k等于0表示主对线)。
以上内容参考:百度百科-diag
取出a阵的对角元,然后构建一个以a对角元为对角的对角矩阵。
A =
1 2
3 4
>> diag(diag(A))
ans =
1 0
0 4
matlab中diag用法:
= diag(v,k)
以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。
例:
>> v=[1 2 3];
>> x=diag(v,-1)
x =
0 0 0 0
1 0 0 0
0 2 0 0
0 0 3 0
下面不知是否是你想要的:
>> clear
>> v(1)=1;
>> n=5;%可以安自己需求
>> v(2:n)=2;
>> x=diag(v,-1)
x =
0 0 0 0 0 0
1 0 0 0 0 0
0 2 0 0 0 0
0 0 2 0 0 0
0 0 0 2 0 0
0 0 0 0 2 0
A =
1 2
3 4
>> diag(diag(A))
ans =
1 0
0 4
A =
1 2
3 4
>> diag(diag(A))
ans =
1 0
0 4