我想编写一个python函数,它生成一个大小为n乘以n的零矩阵,对于主对角线上方的所有元素都有1.
这是我的代码:
def funtest(n):
for i in range(0,n-2):
s = (n,n)
Y = zeros(s)
Z = Y
Z[i,i+1]=1
return Z
Run Code Online (Sandbox Code Playgroud)
但结果只在矩阵的(n-1,n-2)元素中给出1.
我被卡住了,我真的认为我的代码是正确的,并且不知道错误在哪里.我该如何解决?有人可以帮忙吗?
谢谢.
该numpy.diag函数可以完成这个:
import numpy as np
print( np.diag(np.ones(4), 1) )
Run Code Online (Sandbox Code Playgroud)
用第二个参数(1)表示对角线的偏移量.它给:
array([[ 0., 1., 0., 0., 0.],
[ 0., 0., 1., 0., 0.],
[ 0., 0., 0., 1., 0.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 0.]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4592 次 |
| 最近记录: |