首先:我不确定"操作数"是正确的词。我的意思是像< > = in if / then / else。 (编辑:是运营商)
在我的代码的非函数部分,我想切断一个正弦函数并将值设置为剪切的边框:
from numpy import *
x = arange(-15, 15, 1)
y = 12.5*sin(2*pi/3.8*x+pi/2)
for i in y:
print(y[i])
if y[i] > 2.5:
print(y[i])
y[i] = 2.5
但是python并不总是这样做。我得到了什么:
11.8227155213
11.8227155213
-8.46601964532
-5.02119280816
-8.46601964532
-10.9934218901
6.83685197653
6.83685197653
2.5
-10.9934218901
-8.46601964532
-5.02119280816
-8.46601964532
-10.9934218901
6.83685197653
6.83685197653
3.06856858926
3.06856858926
-5.02119280816
3.06856858926
3.06856858926
-5.02119280816
2.5
-10.9934218901
2.5
-8.46601964532
-5.02119280816
-10.9934218901
-10.9934218901
2.5
2.5
-10.9934218901
-8.46601964532
-5.02119280816
-8.46601964532
对我而言6.8368 ..大于2.5。 如果我以较小的步数计算,它会继续。 这是一项如此简单的任务,所以我的错在哪里?
答案 0 :(得分:0)
您正在使用
for i in y:
但是y包含一堆浮点数,所以y [i]可能不是你想要的那样
试
for i, _ in enumerate(y):
另一个不错的选择是
y = minimum(y,2.5)