torch, 如何生成主对角阵,对角元素要么为0,要么为1

简介: 除了使用 torch.eye() 函数生成主对角阵之外,还可以使用 torch.diag() 函数来生成主对角阵。torch.diag() 函数既可以将一个向量转化为对角矩阵,也可以将一个对角矩阵中的对角元素抽取出来形成一个向量。下面是使用 torch.diag() 函数生成主对角阵的示例代码:

可以使用 torch.eye() 函数生成主对角阵,并将对角元素设置为 0 或 1。具体来说,如果需要生成对角元素都为 0 的主对角阵,可以直接调用 torch.eye() 函数,并指定对角线上的元素为 0。如果需要生成对角元素都为 1 的主对角阵,则可以先生成对角线为 1 的主对角阵,然后将对角线上的元素全部乘以 0。

下面是生成上述两种主对角阵的示例代码:

import torch
# 生成对角元素都为 0 的主对角阵
n = 5
A = torch.eye(n) * 0
print(A)

输出结果为:

tensor([[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]])
import torch
# 生成对角元素都为 1 的主对角阵
n = 5
B = torch.eye(n)
print(B)

输出结果为:

tensor([[1., 0., 0., 0., 0.],
        [0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 0.],
        [0., 0., 0., 1., 0.],
        [0., 0., 0., 0., 1.]])


除了使用 torch.eye() 函数生成主对角阵之外,还可以使用 torch.diag() 函数来生成主对角阵。torch.diag() 函数既可以将一个向量转化为对角矩阵,也可以将一个对角矩阵中的对角元素抽取出来形成一个向量。

下面是使用 torch.diag() 函数生成主对角阵的示例代码:

import torch
# 生成对角元素都为 0 的主对角阵
n = 5
A = torch.zeros(n, n)
A = torch.diag(torch.zeros(n))
print(A)

输出结果为:

tensor([[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]])
import torch
# 生成对角元素都为 1 的主对角阵
n = 5
B = torch.ones(n, n)
B = torch.diag(torch.ones(n))
print(B)

输出结果为:

tensor([[1., 0., 0., 0., 0.],
        [0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 0.],
        [0., 0., 0., 1., 0.],
        [0., 0., 0., 0., 1.]])


B = torch.diag(torch.tensor([1,0,1,0,1]))
B
tensor([[1, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 1, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 1]])


相关文章
|
9天前
|
索引
转置矩阵-暴力解法&一行代码
转置矩阵-暴力解法&一行代码
9 0
|
1月前
|
算法 Java
行列式表示只需3步,快速掌握矩阵运算!
行列式表示只需3步,快速掌握矩阵运算!
18 0
|
2月前
|
人工智能
PTA- 矩阵的主对角线元素之和
矩阵的主对角线元素之和
15 1
|
2月前
|
机器学习/深度学习 人工智能
求一个3*3矩阵对角线元素之和
求一个3*3矩阵对角线元素之和。
25 1
|
5月前
对角矩阵(Diagonal Matrix)
对角矩阵(Diagonal Matrix)是一种特殊的矩阵,其元素仅位于主对角线上。对角矩阵通常用于线性代数和微积分等数学领域,它有以下几个特点:
232 7
|
10月前
|
算法 Python
线代矩阵问题
线代矩阵问题
78 0
|
10月前
|
移动开发
半正定矩阵和正定矩阵的一些理解和补充
半正定矩阵和正定矩阵的一些理解和补充
1107 0
|
Windows
详解扬氏矩阵
详解扬氏矩阵
130 0
详解扬氏矩阵