我生成了两个正弦波,我将其命名为";y1";以及";y2";。两者都是时间变量"的函数;x〃;。为了使用另一个脚本进一步处理数据,我需要将它们保存在txt或csv文件中,看起来像这样:
Time(s) Title for y1 Title for y2
1 float... float...
2 float... float...
... .... ....
1000 .... ....
import numpy as np
N = 600 # number of sample points
d = 0.1 # time domain [s]
f = 50 # frequency [Hz or 1/s]
T = 1/f # period [s]
s = d/N # sampling time interval [s]
# sine wave 1
u = 1
du = 0.1
x = np.linspace(0.0, d, N)
y1 = u + u*du* np.sin(2*np.pi*x*f)
# sine wave 2
q = 0.8
dq = 0.1
phi = np.pi/2 # phase delay (rad)
y2 = q + q*dq* np.sin(2*np.pi*x*f - phi)
# export data to csv file
np.savetxt('output/signal.csv', [x,y1,y2], delimiter=',')
这样,我得到的输出是一个csv,其中有3个列在行中的数组。所希望的是将其转换为3列。应该有一种比通过循环生成矩阵更简单的方法(我想(。尝试了各种方法,到目前为止都没有奏效。
下面的NumPy函数实现了这个技巧。
z=np.vstack((x, y1, y2)).T
np.savetxt('output/signal.csv', z, delimiter=',')