废话比较多,但看完能解决问题就对了~
转载请注明出处!
具体的安装方式网上帖子很多,这里不一一赘述了,只讲一下我使用
pip install PyEMD
时遇到的问题
此时说的是没有PyEMD库,网上看到有人说要改成全小写
这个时候虽然错误类型一模一样,但是它变长了,我一开始没注意这个问题,后来才从这里找到了突破口
多出来的一段是进入了pyemd这个文件夹中,然后打开了init文件,在init文件里调用PyEMD库的时候报错了,也就是相当于from PyEMD import CEEMDAN.CEEEMAN的时候依旧报错没有库PyEMD。
聪明的同学可能已经猜到是什么问题了!
于是我打开了这个pyemd文件夹,发现里面确实有CEEMDAN、EEMD、EMD三个文件
于是问题就呼之欲出了——安装时创建的文件夹是小写的pyemd(具体原因不详),但是init中以及网上的所有代码中写的都是PyEMD(仅有y小写),于是我们直接调用PyEMD时是找不到这个文件夹的,而如果调用pyemd,init中以及其它文件中写的依然是PyEMD,依旧找不到这个文件夹。
所以解决办法很简单,只要把文件夹名修改为PyEMD即可!!!
测试代码如下:
# 介绍文档中提供的测试代码
import numpy as np
from PyEMD import EMD,visualisation
import pylab as plt
# Define signal
t = np.linspace(0, 1, 200)
s = np.cos(11*2*np.pi*t*t) + 6*t*t
# Execute EMD on signal
IMF = EMD().emd(s,t)
N = IMF.shape[0]+1
# Plot results
plt.subplot(N,1,1)
plt.plot(t, s, 'r')
plt.title("Input signal: $S(t)=cos(22\pi t^2) + 6t^2$")
plt.xlabel("Time [s]")
for n, imf in enumerate(IMF):
plt.subplot(N,1,n+2)
plt.plot(t, imf, 'g')
plt.title("IMF "+str(n+1))
plt.xlabel("Time [s]")
plt.tight_layout()
plt.savefig('simple_example')
plt.show()
如果没有pyemd文件夹的话,可以试试网上其它帖子所说的
pip install EMD-signal
因为我之前PyEMD和EMD-signal都试了,也不清楚这个文件夹是哪个命令创建的。
求三连~~~(如果问题解决了的话)