24小时热门版块排行榜    

查看: 974  |  回复: 1

madfrog李

铁虫 (初入文坛)

[求助] matlab中排列熵程序出错 已有1人参与

请教,程序如下,请大神帮帮忙,
function [pe hist c] = pec(y,m,t)

%  Calculate the permutation entropy

%  Input:   y: time series;
%           m: order of permuation entropy
%           t: delay time of permuation entropy,

% Output:
%           pe:    permuation entropy
%           hist:  the histogram for the order distribution

%Ref: G Ouyang, J Li, X Liu, X Li, Dynamic Characteristics of Absence EEG Recordings with Multiscale Permutation %     %                             Entropy Analysis, Epilepsy Research, doi: 10.1016/j.eplepsyres.2012.11.003
%     X Li, G Ouyang, D Richards, Predictability analysis of absence seizures with permutation entropy, Epilepsy %     %                            Research,  Vol. 77pp. 70-74, 2007



ly = length(y);
permlist = perms(1:m);
c(1:length(permlist))=0;

for j=1:ly-t*(m-1)
     [a,iv]=sort(y(j:t:j+t*(m-1)));
     for jj=1:length(permlist)
         if (abs(permlist(jj,-iv))==0
             c(jj) = c(jj) + 1 ;
         end
     end
end

hist = c;

c=hist(find(hist~=0));
p = c/sum(c);
pe = -sum(p .* log(p));
% normalizedpe=pe/log(factorial(m));


程序如上所示,请问我在运行时出现错误
>> pec(a,2,6)
错误使用  -
矩阵维度必须一致。

出错 pec (line 25)
         if (abs(permlist(jj,-iv))==0
这是什么问题呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

霜小妹二

木虫 (正式写手)

哈哈

【答案】应助回帖

首先,这个笑脸真不知道是什么鬼;其次,根据判断,你写的该是一个参数减去iv,可是,iv是向量吧,哪怕其中只有一个值!
没事儿就进行交流~
2楼2016-03-28 21:03:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 madfrog李 的主题更新
信息提示
请填处理意见