matlab中的diag,spdiags函数

本文详细介绍了MATLAB中用于处理对角线元素的diag函数和创建稀疏带状矩阵的spdiags函数。diag函数可用于提取矩阵的对角线元素并创建对角矩阵,而spdiags则能提取和创建稀疏带状矩阵,包括主对角线以及其他任意对角线。通过实例解析了这两个函数的用法,包括不同参数设置下的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 diag函数

1.1 定义

     diag函数功能:矩阵对角元素的提取和创建对角阵。设以下X为方阵,v为向量

1.1 用法

(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 =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值