smalldog002 发表于 2007-9-1 11:06

求助 关于correlation_integral的matlab程序

运行了correlation_integral的程序:

function C_I=correlation_integral(X,M,r)
%the function is used to calculate correlation integral
%C_I:the value of the correlation integral
%X:the reconstituted state space,M is a m*M matrix
%m:the embedding demention
%M:M is the number of embedded points in m-dimensional sapce
%r:the radius of the Heaviside function,sigma/2<r<2sigma
%calculate the sum of all the values of Heaviside
%skyhawk
sum_H=0;
for i=1:M
%   fprintf('%d/%d\n',i,M);
    for j=i+1:M
      d=norm((X(:,i)-X(:,j)),inf);%calculat the distances of each two points in matris M with sup-norm
      sita=heaviside(r,d);%calculate the value of the heaviside function
      sum_H=sum_H+sita;
    end
end
C_I=2*sum_H/(M*(M-1));%the value of correlation integral

程序运行不了!
请问,倒数第五行中的 heaviside(r,d) 这个函数的程序是怎样的?
谢谢!!:@)

咕噜噜 发表于 2007-9-2 09:41

这个应该不是matlab自带的函数
这个命令是计算heaviside函数的固有值

octopussheng 发表于 2007-9-3 09:22

下面就是你所需要的heaviside函数代码

function sita=heaviside(r,d)
%the function is used to calculate the value of the Heaviside function
%sita:the value of the Heaviside function
%r:the radius in the Heaviside function,sigma/2<r<2sigma
%d:the distance of two points
%skyhawk
if (r-d)<0
    sita=0;
else sita=1;
end

sssssxxxxx921 发表于 2007-9-3 17:55

回复 #2 咕噜噜 的帖子

是MATLAB自带的函数   只不过参数变量为一个他用两个当然不行了

octopussheng 发表于 2007-9-3 19:39

回复 #4 sssssxxxxx921 的帖子

有这个函数吗?我找找,以前还没有注意到,因为这个m文件我也是下载的

sssssxxxxx921 发表于 2007-9-4 09:22

其实把它的的参量相减当作一个变量代入函数就可以了
页: [1]
查看完整版本: 求助 关于correlation_integral的matlab程序