在Python中创建上三角矩阵和下三角矩阵
问题描述
我想创建一个Python程序,该程序从一个具有一些系数的向量计算一个矩阵。这个矩阵是某种上下三角形。假设我们有以下系数向量a=[a0,a1,a2,a3,a4,a5],那么我想要计算矩阵:
我需要从向量a转到创建下/上三角矩阵A。我知道如何手动为其编制索引,但我需要一个可以执行此操作的程序。
我可能在考虑另一个循环中的循环,但我很难理解它在Python中是如何完成的,您认为这里应该做什么?
解决方案
您可以尝试以下操作:
import numpy as np
c = [1, 2, 3, 4, 5, 6]
n = len(c)
m = 3
a = np.zeros((n,n))
for i in range(n):
np.fill_diagonal(a[i:, :m], c[i])
np.fill_diagonal(a[:, m:], -1)
print(a)
它提供:
[[ 1. 0. 0. -1. 0. 0.]
[ 2. 1. 0. 0. -1. 0.]
[ 3. 2. 1. 0. 0. -1.]
[ 4. 3. 2. 0. 0. 0.]
[ 5. 4. 3. 0. 0. 0.]
[ 6. 5. 4. 0. 0. 0.]]
相关文章