我正在尝试从1D向量生成2D向量,其中元素沿行沿每一行递增。
我希望我的输入看起来像这样:
input:
t = [t1, t2, t3, t4, t5]
out =
[t5, 0, 0, 0, 0]
[t4, t5, 0, 0, 0]
[t3, t4, t5, 0, 0]
[t2, t3, t4, t5, 0]
[t1, t2, t3, t4, t5]
[ 0, t1, t2, t3, t4]
[ 0, 0, t1, t2, t3]
[ 0, 0, 0, t1, t2]
[ 0, 0, 0, 0, t1]
我不知道不使用for循环就可以做到这一点的方法,并且计算效率对于使用this进行任务很重要。有没有办法做到这一点而无需for循环?
这是我的代码使用for循环:
import numpy as np
t = np.linspace(-3, 3, 7)
z = np.zeros((2*len(t) - 1, len(t)))
diag = np.arange(len(t))
for index, val in enumerate(np.flip(t, 0)):
z[diag + index, diag] = val
print(z)
慕侠2389804
相关分类