首先,我希望能够指定一个值n,这会导致生成一个特定的nxn矩阵: 为此,我使用了代码:
n = __
np.eye (n)
这将生成指定维度的单位矩阵n。 但是,我不想精确地创建单位矩阵。相反,我想用以下条目创建nxn矩阵:(如果n为5)
[1, 0, 0, 0, 0]
[a, b, c, 0, 0]
[0, a, b, c, 0]
[0, 0, a, b, c]
[0, 0, 0, 0, 1]
我可以使用np.eye(n)和for循环来解决我的问题吗?
例如,如果我设置n = 4,我希望我的代码形成:
[1 , 0 , 0, 0]
[a , b, c, 0]
[0, a, b, c]
[0, 0, 0, 1]
答案 0 :(得分:0)
是的,您可以使用np.eye
然后使用for循环来设置所有值。
In [30]: a, b, c = (5, 6, 7)
In [31]: n = 5
In [32]: arr = np.eye(n)
In [33]: for i in range(1, n-1):
...: arr[i, i-1: i+2] = (a, b, c)
...:
In [34]: arr
Out[34]:
array([[ 1., 0., 0., 0., 0.],
[ 5., 6., 7., 0., 0.],
[ 0., 5., 6., 7., 0.],
[ 0., 0., 5., 6., 7.],
[ 0., 0., 0., 0., 1.]])
这里我们创建一个大小为n
的单位矩阵。然后在第33行中,我们遍历矩阵的行(不包括第一行和最后一行),并用a
,b
和c
替换该行中的相应值。