matlab中diag用法

如题所述

调用格式:a=diag(x);

若x是m*n的矩阵,则a为x对角线元素组成的向量,且a的大小等于x较小的维数,即min(m,n)

若x是1*m的向量,则a为m*m的矩阵,该矩阵的对角线元素为x。

以向量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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-12
X = 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本回答被提问者采纳
第2个回答  推荐于2017-10-06
= 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
第3个回答  2011-08-08
调用格式:a=diag(x);
若x是m*n的矩阵,则a为x对角线元素组成的向量,且a的大小等于x较小的维数,即min(m,n)
若x是1*m的向量,则a为m*m的矩阵,该矩阵的对角线元素为x。
第4个回答  2011-07-27
diag函数是提取对角元素
diag(A,0)提取的是主对角线上的元素,diag(A,1)提取的是主对角线上一对角线上的元素,diag(A,-1)提取的是主对角线下一对角线上的元素。

祝你学习愉快!
另外,站长团上有产品团购,便宜有保证
相似回答