diag
(函数)
编辑 讨论
本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。
diag函数在FreeMat、Matlab中该函数用于构造一个对角矩阵,不在对角线上元素全为0的方阵,或者以向量的形式返回一个矩阵上对角线元素。 [1]
中文名
diag
外文名
diag
所 属
函数
功 能
构造一个对角矩阵
应 用
目录
- 3 数学符号
函数简介
编辑
FreeMat
语法格式:
FreeMat中该函数语法:
y = diag(x,n)
如果x是一个矩阵,y就是x中第n条对角线上的元素。如果n被忽略,n的默认值是0,即返回主对角线上元素。
Matlab
Matlab中该函数语法:
X = diag(v,k)
其中v是一个含有n个元素的向量,该调用格式可以构造一个n+abs(k)阶的方阵X。并把v作为方阵X的第k条对角线(k大于0,表示主对角线上方的第k条对角线,k小于0表示主对角线下侧的第k条对角线,k等于0表示主对线)。 [2] 如图
X = diag(v)
等价于X = diag(v,0)
v = diag(X,k)
以向量形式返回矩阵X中第k条对角线上的元素。
v = diag(X)
等价于v = diag(X, 0)
相关函数:diag、rank、det、eig、blkdiag、spdiags
程序示例
编辑
FreeMat
示例:
--> A = [1 2 3; 4 5 6; 7 8 9];
--> diag(A)
ans =
1
5
9
--> sum(diag(A))
ans = 15
--> trace(A)
ans = 15
Matlab
示例:
% 构造对角矩阵
>> v = [1 1 1];
>> X = diag(v)
X =
1 0 0
0 1 0
0 0 1
>> X = diag(v, 1)
X =
0 1 0 0
0 0 1 0
0 0 0 1
0 0 0 0
% 以向量形式返回对角矩阵上指定对角线上元素
>> v= diag(X)
v =
0
0
0
0
>> v= diag(X,1)
v =
1
1
1
矩阵的示例:
A=[1,2,3
4,5,6
7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> diag(A)
ans =
1
5
9
>> diag(diag(A))
ans =
1 0 0
0 5 0
0 0 9
数学符号
编辑
在线性代数中,diag(a,b,c…)表示一个对角矩阵(即指除了主对角线外的元素均为零的方阵)。