我在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'
第一个错误看起来好像是多个数组。但第二个说它没有多个阵列。为什么或我不理解错误消息?
答案 0 :(得分:3)
使用numpy
数组时,您不应使用math
个函数。尝试使用numpy
函数:
sine = numpy.sin(2*numpy.pi*f0*t))
至于getShape()
问题,因为错误消息显示没有具有该名称的属性。尝试:
print(t.shape)