import numpy as np def SampEn(U, m, r): """ 用于量化时间序列的可预测性 :param U: 时间序列 :param m: 模板向量维数 :param r: 距离容忍度,一般取0.1~0.25倍的时间序列标准差,也可以理解为相似度的度量阈值 :return: 返回一个-np.log(A/B),该值越大,序列就越复杂 """ def _maxdist(x_i, x_j): """ Chebyshev distance :param x_i: :param x_j: :return: """ return max([abs(ua - va) for ua, va in zip(x_i, x_j)]) def _phi(m): x = [[U[j] for j in range(i, i + m - 1 + 1)] for i in range(N - m + 1)] C = [len([1 for j in range(len(x)) if i != j and _maxdist(x[i], x[j]) <= r]) for i in range(len(x))] result=sum(C)/(N-m) return result N = len(U) return -np.log(_phi(m + 1) / _phi(m)) if __name__ == '__main__': m=2 ss = [] for line in open('E:\\a科研\\算法实现\\EEMD算法实现集合\\E_IMFs-10.csv', 'r', encoding='utf-8'): ss.append(line.strip()) # 一次读一行,并且内存不会溢出,去除空行或者空格 ss1 = [] ss1=[ss for ss in ss1 if ss ] for item in ss1: ss1.append(float(item)) print(SampEn(ss1, m, r=0.2 * np.std(ss1)))
时间: 2024-04-11 16:28:04 浏览: 26
在你提供的代码中,我注意到在`ss1=[ss for ss in ss1 if ss ]`这行代码中存在问题。这行代码实际上是将`ss`赋值给了`ss1`,而不是将非空元素添加到`ss1`中。
为了修复这个问题,你可以将这行代码修改为`ss1=[s for s in ss if s]`。这样就会将非空元素添加到`ss1`中。
此外,还需要注意的是,在计算SampEn之前,你需要确保`ss1`不为空。可以添加一个条件来检查`ss1`是否为空,如果为空,则给出适当的错误提示或者返回一个默认值。
修复后的代码如下所示:
```python
import numpy as np
def SampEn(U, m, r):
# 省略部分代码
if __name__ == '__main__':
m = 2
ss = []
for line in open('E:\\a科研\\算法实现\\EEMD算法实现集合\\E_IMFs-10.csv', 'r', encoding='utf-8'):
ss.append(line.strip())
ss1 = [s for s in ss if s] # 修复此行代码
if len(ss1) == 0: # 检查ss1是否为空
print("Error: ss1 is empty")
else:
ss1 = [float(item) for item in ss1]
print(SampEn(ss1, m, r=0.2 * np.std(ss1)))
```
请尝试使用这个修复后的代码,并检查是否仍然存在错误。如果问题仍然存在,请提供完整的错误信息以便我进行进一步的排查。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)