随笔 - 1762  文章 - 0  评论 - 109  阅读 - 431万

matlab对角阵

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

posted on   一杯明月  阅读(4378)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2019-05-27 matlab的正则表达式
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示