[英]How to properly create a matrix within a for loop in python?
我有一个名为SP
的矩阵:
[ 0. 134.825 280.45 280.45 280.45 280.45 280.45 280.45
280.45 280.45 280.45 145.625 0. 134.825 280.45 280.45
280.45 280.45 280.45 280.45 280.45 280.45 280.45 145.625
0. 134.825 134.825 134.825 134.825 134.825 235.45 235.45
235.45 235.45 235.45 100.625]
现在我想创建一个名为SP1
的新矩阵并循环遍历它。 我是 python 的新手,但我知道 python 需要在循环外创建空矩阵,然后替换创建的值。
我使用了这段代码:
SP1 = np.zeros((len(SP),))
for d in range(len(SP)):
if d ==0:
SP1[d,] = SP[d,]
else:
if SP[d-1,] < SP[d,]:
SP1[d-1,] = 0
SP1[d,] = SP[d,]
else:
SP1[d,] = SP[d,]
break
break
break
print(SP1)
然而,尽管出现了任何错误,但我得到了全零,就像我创建的矩阵 SP1 一样。 任何人都可以指导我找到问题吗?
这是我预期的 output:
[0 0 280.45 280.45 280.45 280.45 280.45 280.45 280.45
280.45 280.45 145.62 0 0 280.45 280.45 280.45 280.45 280.45
280.45 280.45 280.45 280.45 145.62 0 134.82 134.82 134.82
134.82 0 235.45 235.45 235.45 235.45 235.45 100.62]
真的提前谢谢了。
您的问题是您如何索引 SP 和 SP1。 您应该会看到类似TypeError: list indices must be integers or slices, not tuple
的错误。 你也不需要休息。 尝试这个:
for d in range(len(SP)):
if d == 0:
SP1[d] = SP[d]
else:
if SP[d - 1] < SP[d]:
SP1[d - 1] = 0
SP1[d] = SP[d]
else:
SP1[d] = SP[d]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.