matlab中spdiag_matlab中的diag函数

这篇博客详细介绍了MATLAB中diag函数的功能,包括如何提取矩阵的对角元素以及创建对角阵。通过示例解释了diag函数在不同参数k下的行为,如创建上、下对角线矩阵,以及如何将对角线元素转化为列向量。同时,展示了diag函数与spdiag函数的关联,用于构建以原矩阵对角元为对角的对角矩阵。
摘要由CSDN通过智能技术生成

--------------------转载自网络---------------------

diag函数功能:矩阵对角元素的提取和创建对角阵

设以下X为方阵,v为向量

1、X

= diag(v,k)当v是一个含有n个元素的向量时,返回一个n+abs(k)阶方阵X,向量v在矩阵X中的第k个对角线上,k=0表示主对角线,k>0表示在主对角线上方,k<0表示在主对角线下方。例1:

v=[1 2 3];

diag(v, 3)

ans =

0 0 0 1 0 0

0 0 0 0 2 0

0 0 0 0 0 3

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

注:从主对角矩阵上方的第三个位置开始按对角线方向产生数据的

例2:

v=[1 2 3];

diag(v, -1)

ans =

0

0 0 0

1

0 0 0

0

2 0 0

0

0 3 0

注:从主对角矩阵下方的第一个位置开始按对角线方向产生数据的

2、X = diag(v)

向量v在方阵X的主对角线上,类似于diag(v,k),k=0的情况。

例3:

v=[1 2 3];

diag(v)

ans =

1 0 0

0 2 0

0 0 3

注:写成了对角矩阵的形式

3、v =

diag(X,k)

返回列向量v,v由矩阵X的第k个对角线上的元素形成

例4:

v=[1 0 3;2 3 1;4 5 3];

diag(v,1)

ans =

0

1

注:把主对角线上方的第一个数据作为起始数据,按对角线顺序取出写成列向量形式

4、v

= diag(X)返回矩阵X的主对角线上的元素,类似于diag(X,k),k=0的情况例5:

v=[1 0 0;0 3 0;0 0 3];

diag(v)

ans =

1

3

3

或改为:

v=[1 0 3;2 3 1;4 5 3];

diag(v)

ans =

1

3

3

注:把主对角线的数据取出写成列向量形式

5、diag(diag(X))

取出X矩阵的对角元,然后构建一个以X对角元为对角的对角矩阵。例6:

X=[1 2;3

4] diag(diag(X))

X =

1 2

3 4

ans =

1 0

0 4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值