boxd.m

来自「一维数据的盒维算法」· M 代码 · 共 37 行

M
37
字号
%盒维结果应该比变换维小
clear;
load z1024h3_4.mat;%待分析数据
y=z(1:1024);

t=length(y);
x=0:1/t:1-1/t;
for i=1:7
    s=1/2^i;%盒子宽度
    Wbox=2^i;%横向盒子数量
    Sbox=t/2^i
    N(i)=0%本精度下总盒子数
    for m=1:Wbox
        seg=[(m-1)*Sbox+1:m*Sbox]%当前盒子在x轴上的坐标起止点
        y_max=max(y(seg));
        y_min=min(y(seg));
        top=ceil(y_max/s);
        down=floor(y_min/s);
        Nb=top-down;% 本段曲线占有的格子数
        N(i)=N(i)+Nb;
    end
    N_log(i)=log(N(i));
    x_log(i)=log(1/s);
end
plot(x_log,N_log,'.');
grid on;
hold on;
P=polyfit(x_log,N_log,1);%最小二乘法拟合数据
xx=[floor(min(x_log)):ceil(max(x_log))]
yy=P(1)*xx+P(2);
plot(xx,yy);
D=P(1);


        

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?