如何在文本文件中存储一些数组(矢量)作为列而不是行



我生成了两个正弦波,我将其命名为";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=',')

最新更新