import math
i=0
list1=[] #定义一个空list
while(i<360):
list1.append(i) #把数据增加到列表末
i=i+3.6; #因为我要一个周期里有100个点,所以点间距为3.6度
#以上生成了100个点的角度数据
list2=[x*math.pi/180 for x in list1] #把角度转成弧度
list3=[100*math.sin(x) for x in list2] #求出正弦值,并放大100倍
list4=[int(x) for x in list3] #取整
print(list4)
用于单片机查表用,以上是自己想的方法。
第二种方法:
转载:http://www.eemaker.com/python-sin-data.html
‘’’
–sin.py
–write by derrick
–功能:生成正弦波采样数据并写入txt文件
–20180829
‘’’
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,4*np.pi,4*8) #4/2=2 2个完整的正弦波波形 4*8代表一共生成的点数量
#x是32个点的list,从0开始,终点4*pi, 总点数32个, 4pi则是2个周期数据
y=43+43*np.sin(x) #生成正弦表并增加偏置
y1=y.astype(int) #把y值转换成整数
#画x,y图
plt.plot(x,y1,'bp--') #绘制成图表
plt.show()
#先把生成两个正弦波数据存入txt文件,生成的data.txt在本文件的目录下
np.savetxt("data.txt",(y1),delimiter=',',fmt="%d",newline=',')
#读取正弦波数据,共包含两个正弦波,32个点
fileH=open("data.txt")
fileData=fileH.read()
fileH.close()
print(type(fileData))
print(fileData)#要打印数据,必须先关闭画xy图
#以写方式打开文件,以之前的两个正弦波的数据做拷贝
fileH=open("data-500.txt",'w')
for i in range(2000): #把data.txt的数据写2000次到data-500.txt文件
fileH.write("\n")
fileH.writelines(fileData)
fileH.close()