在Open3D的open3d.core.Tensor
类中,tril
方法返回一个矩阵下三角形部分元素的张量。
tril(k = 0) -> Tensor
k
:整数。默认值为0。表示对角线以上的对角矩阵数量。k > 0
表示对角线以上的对角矩阵数量,k < 0
表示对角线以下的对角矩阵数量。import open3d.core as o3c
import numpy as np
arr = np.array([[8, 3, 1, 9],
[6, 7, 2, 5],
[4, 5, 1, 7]])
t = o3c.Tensor(arr)
t_tril = t.tril()
print(t_tril)
# 输出结果:
# [[8 0 0 0]
# [6 7 0 0]
# [4 5 1 0]]
import open3d.core as o3c
import numpy as np
arr = np.array([[8, 3, 1, 9],
[6, 7, 2, 5],
[4, 5, 1, 7]])
t = o3c.Tensor(arr)
t_tril = t.tril(k = 2)
print(t_tril)
# 输出结果:
# [[1 9 0 0]
# [2 5 0 0]
# [1 7 0 0]]
import open3d.core as o3c
import numpy as np
arr = np.array([[8, 3, 1, 9],
[6, 7, 2, 5],
[4, 5, 1, 7]])
t = o3c.Tensor(arr)
t_tril = t.tril(k = -1)
print(t_tril)
# 输出结果:
# [[0 0 0 0]
# [6 0 0 0]
# [4 5 0 0]]
在Open3D内部,tril
方法经过以下步骤实现:
k
计算出对角线以上或以下的对角矩阵数量num
。t_tril
。t_tril
相应位置上赋值,上三角部分则全部赋值为0。ValueError
异常。k
必须为整数,否则会抛出TypeError
异常。k
不能大于输入张量的行数和列数的差,否则会抛出ValueError
异常。以上就是Open3D的open3d.core.Tensor
类中tril
方法的详细说明。