Python正弦函数错误

时间:2015-10-09 07:52:08

标签: python-3.x numpy matplotlib

我在matlab工作了一段时间,但现在也想学习一些python。但几天后我遇到了麻烦...

我有类似的功能。一个matplotlib示例和一个基于一些示例(可能还有matplotlib一个)

麻烦的是,一个功能正在运行,而不是......

这个正在运作

import matplotlib.pylab
from pylab import *

t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
plot(t, s)

xlabel('time (s)')
ylabel('voltage (mV)')
title('About as simple as it gets, folks')
grid(True)
savefig("test.png")
show()

这一个

import math
import numpy
#import scipy
import matplotlib.pylab as plt

f0 = 50
f1 = 500 
t1 = 2
t = numpy.arange(0,t1,1/44100)#[numpy.newaxis]; 
#print(t.getshape())

sine = math.sin(2*math.pi*f0*t)

plt.plot(t, sine)
plt.xlabel('Angle [rad]')
plt.ylabel('sin(t)')
plt.axis('tight')
plt.show()

给出以下错误

  

文件“C:/Users/location/test_sweep.py”,第19行,in              sine = math.sin(2 * math.pi * f0 * t)

     

TypeError:只能将length-1数组转换为Python标量

这个错误来自哪里?我为什么要用第二种配方而不是用第一种配方?

一个附带问题 当我取消注释print(t.getshape())时 我也得到以下错误。

  

文件“C:/Users/location/test_sweep.py”,第17行,in              打印(t.getshape())

     

AttributeError:'numpy.ndarray'对象没有属性'getshape'

第一个错误看起来好像是多个数组。但第二个说它没有多个阵列。为什么或我不理解错误消息?

1 个答案:

答案 0 :(得分:3)

使用numpy数组时,您不应使用math个函数。尝试使用numpy函数:

sine = numpy.sin(2*numpy.pi*f0*t))

至于getShape()问题,因为错误消息显示没有具有该名称的属性。尝试:

print(t.shape)