文件交换
8下载
更新2015年10月20日
从GitHub
在GitHub上查看许可
在native Matlab和c(使用MEX)中有效计算样本熵的脚本。欲知更多资料,请浏览:https://en.wikipedia.org/wiki/Sample_entropy。matlab版本是大约。速度是之前实现的2倍。c版本大约。10倍的速度。
尼尔斯·Hammerla(2021)。快速样本熵GitHub (https://github.com/nhammerla/sampleEntropy)。检索2021年4月28日。
2020年7月8日
非常感谢这段非常好的代码。但是我有一些问题与它相比我的自定义脚本我写明白SampleEntropy基于论文中描述的“有效的方法在时间序列数据计算样本熵分析”由r . Bhavasar n . Helian y太阳,n .戴维t . Steffert d市长Procedia计算机科学145(2018)97 - 104。
根据“by the book”SampleEntropy的算法,当我从你的for循环条件中移除“-1”来提取长度为wlen+1的窗口时,SampleEntropy返回的结果与你的脚本相同。这样就去掉了一些我认为有必要的比较。-------------------%提取长度为wlen+1的窗口pos = 1:长度(seq) -wlen-1: D (pos) = seq (pos: pos + wlen);结束--------------------
如果使用wlen=0,脚本将失败。我在你的代码中写了一个小修复:----------------------如果wlen > 0v1 = max (DD (: 1: end-1), [], 2);%最大沿第二昏暗(情况1)v1 = max(v1, DD(:,end));%添加最后一列(情况2)B = B + sum(v1 < r);A = A + sum(v2 < r);其他的A = A + sum(DD(:,end) < r);结束--------------------
最后,当B=0或wlen=0时,对B做一个小调整,以防止返回NaN。-------------------------------------如果B == 0If (wlen == 0) = 0时间序列中样本熵的有效计算方法R. Bhavasar, N. Helian, Y. Sun, N. Davey, T. Steffert,% D. Mayor in Procedia Computer Science 145 (2018) 97-104ratioAB = / ((seq) *长度(长度(seq) 1) / 2);其他的ratioAB = 0;结束其他的ratioAB = A / B;结束%%回到原来的使用ratioAB而不是A/Bd =日志(ratioAB);-----------------------
而不是d = -log(A/B);
2017年3月6日
启发:样本熵
在MATLAB中心找到宝藏,并发现社区可以如何帮助您!
在单个可执行文档中创建带有代码、输出和格式化文本的脚本。
了解实时编辑器
选择一个网站来获得可用的翻译内容,并看到当地的活动和提供。根据您所在的位置,我们建议您选择:。
你也可以从以下列表中选择一个网站:
请选择表现最佳的中国网站(中文或英文)。MathWorks的其他国家网站并没有针对您所在位置的访问进行优化。
与当地办事处联系
非常感谢这段非常好的代码。但是我有一些问题与它相比我的自定义脚本我写明白SampleEntropy基于论文中描述的“有效的方法在时间序列数据计算样本熵分析”由r . Bhavasar n . Helian y太阳,n .戴维t . Steffert d市长Procedia计算机科学145(2018)97 - 104。
根据“by the book”SampleEntropy的算法,当我从你的for循环条件中移除“-1”来提取长度为wlen+1的窗口时,SampleEntropy返回的结果与你的脚本相同。这样就去掉了一些我认为有必要的比较。
-------------------
%提取长度为wlen+1的窗口
pos = 1:长度(seq) -wlen-1
: D (pos) = seq (pos: pos + wlen);
结束
--------------------
如果使用wlen=0,脚本将失败。我在你的代码中写了一个小修复:
----------------------
如果wlen > 0
v1 = max (DD (: 1: end-1), [], 2);%最大沿第二昏暗(情况1)
v1 = max(v1, DD(:,end));%添加最后一列(情况2)
B = B + sum(v1 < r);
A = A + sum(v2 < r);
其他的
A = A + sum(DD(:,end) < r);
结束
--------------------
最后,当B=0或wlen=0时,对B做一个小调整,以防止返回NaN。
-------------------------------------
如果B == 0
If (wlen == 0) = 0
时间序列中样本熵的有效计算方法
R. Bhavasar, N. Helian, Y. Sun, N. Davey, T. Steffert,
% D. Mayor in Procedia Computer Science 145 (2018) 97-104
ratioAB = / ((seq) *长度(长度(seq) 1) / 2);
其他的
ratioAB = 0;
结束
其他的
ratioAB = A / B;
结束
%%回到原来的使用ratioAB而不是A/B
d =日志(ratioAB);
-----------------------
而不是d = -log(A/B);