我在Python上写了这个简单的代码:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-400,400,80)
y = np.exp(-1/35*np.absolute(x))
plt.plot(x,y)
plt.show()
这是我得到的图表:
为什么计算错了? 我用Octave做了同样的图:
有人可以帮帮我吗?
答案 0 :(得分:1)
当您打算使用浮点时,您正在使用整数运算。
试试这个:
y = np.exp(-1.0/35*np.absolute(x))
在Python2中,<int>/<int>
产生一个向下舍入的整数。在Python3中,相同的表达式产生一个浮点值。
实现同样结果的其他方法是:
y = np.exp(float(1)/35*np.absolute(x))
from __future__ import division
... y = np.exp(1/35*np.absolute(x))