2026a

# diagm


创建矩阵对角线元素

函数库: TyMath

# 语法

diagm(v::AbstractVector)
diagm(kv::Pair{<:Integer,<:AbstractVector}...)

# 说明

D = diagm(v) 返回包含主对角线上向量 v 的元素的对角矩阵。示例


diagm(kv::Pair{<:Integer,<:AbstractVector}...)表示输入k::Integer,v::AbstractVector的Pair,将向量 v 的元素放置在第 k 条对角线上。k=0 表示主对角线,k>0 位于主对角线上方,k<0 位于主对角线下方。示例

# 示例

创建诊断矩阵

创建一个 1×5 的向量。

using TyMath
v = [2, 1, -1, -2, -5];

使用 diagm 创建一个包含 v 在主对角线上的元素的矩阵。

D = diagm(v)
D = 5×5 Matrix{Int64}:
 2  0   0   0   0
 0  1   0   0   0
 0  0  -1   0   0
 0  0   0  -2   0
 0  0   0   0  -5

创建一个包含 v 在第一个上对角线 (k=1) 上的元素的矩阵。

D1 = diagm(1 => v)
D1 = 6×6 Matrix{Int64}:
 0  2  0   0   0   0
 0  0  1   0   0   0
 0  0  0  -1   0   0
 0  0  0   0  -2   0
 0  0  0   0   0  -5
 0  0  0   0   0   0

结果为一个 6×6 矩阵。将一个长度为 n 的向量指定为输入时,diag 返回一个大小为 n+abs(k) 的方阵。

# 输入参数

v - 对角线元素
向量

对角线元素,指定为向量。

数据类型:Number

复数支持: 是

kv - 位置向量对
Pair

对角线编号和向量组成的对,以整数k => 向量v的形式传入,构建向量v在位置k上的对角矩阵形式

# 另请参阅

diag