Python 如何创建两个功能完全相同但x值不同的正弦波
我需要构造两个描述相同函数的正弦波,但是,它们在x轴上应该有不同的起点。一个应该从0开始到2pi,另一个从0.05开始到2pi+0.05。它们的步长都应为1。对于正常正弦波,这很容易:Python 如何创建两个功能完全相同但x值不同的正弦波,python,numpy,scipy,Python,Numpy,Scipy,我需要构造两个描述相同函数的正弦波,但是,它们在x轴上应该有不同的起点。一个应该从0开始到2pi,另一个从0.05开始到2pi+0.05。它们的步长都应为1。对于正常正弦波,这很容易: n = int(2*numpy.pi//0.1) x_train = numpy.linspace(0, 2*numpy.pi, n) x_test = numpy.linspace(0.05, 2*numpy.pi+0.05, n) ysin_train = numpy.sin(2*x_train) ysi
n = int(2*numpy.pi//0.1)
x_train = numpy.linspace(0, 2*numpy.pi, n)
x_test = numpy.linspace(0.05, 2*numpy.pi+0.05, n)
ysin_train = numpy.sin(2*x_train)
ysin_test = numpy.sin(2*x_test)
plt.plot(x_train, ysin_train)
plt.plot(x_test, ysin_test)
plt.show()
该图将显示两条曲线完全相同,只是起点不同。对于方波来说,做什么并不那么明显。我试过这个:
from scipy import signal
ysquare_train = signal.square(2*x_train)
ysquare_test = signal.square(2*x_test)
plt.plot(x_train, ysquare_train)
plt.plot(x_test, ysquare_test)
但这两条曲线显然没有描述相同的功能,
ysquare\u测试
比ysquare\u列车
领先0.05个单位。如何实现我想要的?您遇到了离散的间距问题。尝试增加点数:
n = int(2*numpy.pi//0.01)
(顺便说一句:int在这里是多余的,因为您使用了//运算符)所以您是说,无论我向
信号馈送什么x向量,平方正弦波都从0开始。平方
?我不确定是否理解您的问题。使用较大的n
的代码确实会显示两个重叠的函数,一个从0开始,另一个从0.05开始。是的,这是正确的。那么这是matplotlibs plotting或scipy的信号
函数的问题吗?不是。这只是你采样函数的方式,不够密集。若要理解,请尝试使用点标记“.”打印。