def getFFtMag(data):
maglist = []
for x in range(0, len(data)):
dataVal = data[x]
firstVal = dataVal.real
secondVal = dataVal.imag
mag = math.sqrt(firstVal*firstVal + secondVal*secondVal)
maglist.append(mag)
return maglist
>>> getFFtMag("25 - Copy.xlsx")
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
getFFtMag("25 - Copy.xlsx")
File "<pyshell#10>", line 5, in getFFtMag
firstVal = dataVal.real
AttributeError: 'str' object has no attribute 'real'
>>>
所以有人能告诉我为什么我的代码错了吗?附加的错误似乎突然出现。我是python的新手并且正在学习正在发生的事情。我输入的数据有问题吗?感谢。
答案 0 :(得分:0)
您尝试从文件中读取数据,而不是先将其解析为复数格式。从文件读取的数据将是字符串或类似字节的对象,具体取决于您打开文件的方式。但是在这里,你甚至还没有打开文件。
为了告诉您如何专门解决此问题,我们需要查看您尝试操作的文件的格式。
答案 1 :(得分:0)
您正在使用字符串(显然是文件名)作为参数调用getFFtMag
函数。但是,此函数需要具有.real
和.imag
属性的元素的列表(或通常可迭代)。字符串的元素是单字符字符串,字符串不具有这些属性 - 复数具有。您需要读取文件的内容,并以某种方式将它们转换为复杂的。
答案 2 :(得分:0)
您正在将字符串传递给您的函数,而不是使用.real
和.imag
传递数据,并且由于字符串没有这些字段,因此会出现相应的错误。
您必须先阅读文件内容。我建议有一个look at pandas .read_excel() function