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]])


相关文章
|
17天前
10x10 矩阵
【10月更文挑战第26天】10x10 矩阵。
9 2
|
1月前
|
机器学习/深度学习 人工智能
求一个3*3矩阵对角线元素之和
求一个3*3矩阵对角线元素之和。
25 14
|
6月前
玩转矩阵
玩转矩阵
|
6月前
|
索引
转置矩阵-暴力解法&一行代码
转置矩阵-暴力解法&一行代码
40 0
|
6月前
|
人工智能
PTA- 矩阵的主对角线元素之和
矩阵的主对角线元素之和
93 1
对角矩阵(Diagonal Matrix)
对角矩阵(Diagonal Matrix)是一种特殊的矩阵,其元素仅位于主对角线上。对角矩阵通常用于线性代数和微积分等数学领域,它有以下几个特点:
659 7
|
算法 Python
线代矩阵问题
线代矩阵问题
110 0
|
移动开发
半正定矩阵和正定矩阵的一些理解和补充
半正定矩阵和正定矩阵的一些理解和补充
1683 0