求肌电信号近似熵的程序,大家帮忙看下有问题吗
对一组数据分别求近似熵,有的可以求出来有的却不存在,是数据不好还是别的什么原因呢NaN
Inf
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
得到结果是这个样子的%
function ApEnvalue = ApEn1(x)
n=length(x);
sd=std(x);
r=0.2*sd;
for ii=1:2
m=ii+1;
num=zeros(n-m+1,1);
for i=1:n-m+1
for j=1:n-m+1
if j~=i
for k=1:m
d(k)=abs(x(i+k-1)-x(j+k-1));
end
d1=max(d);
if d1<r
num(i,1)=num(i,1)+1;
end
end
end
c0(i)=num(i,1)/(n-m);
c1(i)=log(c0(i));
end
sc=sum(c1);
fi(ii)=sc/(n-m+1);
end
ApEnvalue=fi(1)-fi(2);
这个是求近似熵的程序,大家帮忙看下有问题吗 也是希望LZ的问题能有回应并解决! 建议先看下这两帖!
建议提问的网友分清 编程问题 和 专业问题
http://forum.vibunion.com/forum/viewthread.php?tid=36746&extra=&page=1
提问的智慧!!!!(发帖前请认真阅读)
http://forum.vibunion.com/forum/viewthread.php?tid=21991
回复 2 # ChaChing 的帖子
我承认我是个菜鸟,但是请你也尊重一下人。问题已经解决了 ChaChing老哥只是帮助你学会提问,毕竟这里的人不都是和你一个专业。别人的善意提醒如果当成对你的不尊重,那么恐怕以后很少有人敢回答你的问题了,搞不好被落下个不尊重的恶名。
PS:对事不对人,楼主千万别以为我不尊重你,说实话我很尊重。战战兢兢回完这个帖了。{:{33}:} 回复 1 # xuanmengx 的帖子
真是难以理解,不知道什么地方不尊重你了
我刚开始的时候,也看过这些帖子
专业的问题,和编程的问题是两回事
以我的能力,我没有办法解决你的问题
除非你给出专业方面的指导 回复 3 # xuanmengx 的帖子
1.申明下绝没不尊重的意思, 或许用词不当, 请体谅
2.其实我是看过LZ的所有帖, 或许个人水平/专业有限, 真的没看清LZ的许多帖
3.如这帖, 输入x是什麼? 别人不好试吧
4.请LZ试著忘记自己的专业, 再试看看, 是否能了解? 或许LZ较力, 但我是真的不行!
总归也是希望LZ的问题能有回应并解决! 没恶意
BTW, 谢谢楼上两位大牛帮忙解释 xuanmengx 发表于 2011-3-25 11:29 static/image/common/back.gif
回复 2 # ChaChing 的帖子
我承认我是个菜鸟,但是请你也尊重一下人。问题已经解决了
问题解决了, 与大家分享吧! 回复 4 # rocwoods 的帖子
不好意思,现在才看到这个,知道错了,请见谅。 回复 5 # qibbxxt 的帖子
谢谢提醒,我知道了 回复 6 # ChaChing 的帖子
谢谢你的建议,我不懂规则,那个是程序有点问题
function = ApEn(data,m,r_factor)
% Estimate the Aproximate Entropy (ApEn) of a data.
% m=1 or m=2
% r between 0.1*SD and 0.25*SD, where SD is the data standard deviation
% N (data length) between 75 and 5000;
% = ApEn(data,m,r);
% Input variables:
% data - data
% m - pattern length
% r_factor - factor of the criterion of similarity r_factor*std(data)
% Output variables:
% ApEn_value - ApEn calculated from the data
% Optional output variables:
% C_m
% C_m_1
m=2;r_factor=0.3;
%x=load('E:\Noraxon data\14严碧英\行走');
%x=x.Data{1,1}(2501:3500,1);%周期提取
%data=2*(x-min(x))/(max(x)-min(x))-1;%幅值归一
N=length(data);
% C computation for the "m" pattern.
= C_m_computation(data,m,r_factor);
% C computation for the "m+1" pattern.
= C_m_computation(data,m+1,r_factor);
% Phi’s computation.
phi_m=mean(log(C_m));
phi_m_1=mean(log(C_m_1));
% Final ApEn computation.
ApEn_value=;
% -------------------------------------------------------------------
function = C_m_computation(data,m,r_factor)
X=[];C_im=[];n_im=[];max_dif=[];
N=length(data);
% Construction of the X’s vectors.
for j=1:N-m+1
X(j,:)=data(j:j+m-1);
end
% C computation.
for j=1:N-m+1
aux1=repmat(X(j,:),N-m+1,1);
dif_aux=abs(X-aux1);
n_im=0;
for k=1:N-m+1
if max(abs(dif_aux(k,:)))<r_factor*std(data)
n_im=n_im+1;
end
end
C_im=;
end
这个是更新后的程序,其中的输入是一组一维数据 这个数据的点数限制的比较死啊,我们做的实验采样信号数据达到了3W+的点。。。
页:
[1]