废话比较多,但看完能解决问题就对了~

转载请注明出处!

具体的安装方式网上帖子很多,这里不一一赘述了,只讲一下我使用

pip install PyEMD

时遇到的问题

直接调用PyEMD时

此时说的是没有PyEMD库,网上看到有人说要改成全小写

全小写调用

这个时候虽然错误类型一模一样,但是它变长了,我一开始没注意这个问题,后来才从这里找到了突破口

多出来的一段是进入了pyemd这个文件夹中,然后打开了init文件,在init文件里调用PyEMD库的时候报错了,也就是相当于from PyEMD import CEEMDAN.CEEEMAN的时候依旧报错没有库PyEMD。

聪明的同学可能已经猜到是什么问题了!

于是我打开了这个pyemd文件夹,发现里面确实有CEEMDAN、EEMD、EMD三个文件

pyemd文件夹

于是问题就呼之欲出了——安装时创建的文件夹是小写的pyemd(具体原因不详),但是init中以及网上的所有代码中写的都是PyEMD(仅有y小写),于是我们直接调用PyEMD时是找不到这个文件夹的,而如果调用pyemd,init中以及其它文件中写的依然是PyEMD,依旧找不到这个文件夹。

所以解决办法很简单,只要把文件夹名修改为PyEMD即可!!!

测试代码如下:

# 介绍文档中提供的测试代码import numpy as npfrom PyEMD import EMD,visualisationimport pylab as plt# Define signalt = np.linspace(0, 1, 200)s = np.cos(11*2*np.pi*t*t) + 6*t*t# Execute EMD on signalIMF = EMD().emd(s,t)N = IMF.shape[0]+1# Plot resultsplt.subplot(N,1,1)plt.plot(t, s, 'r')plt.title("Input signal: $S(t)=cos(22pi 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都试了,也不清楚这个文件夹是哪个命令创建的。

求三连~~~(如果问题解决了的话)