📄 logishang.m
字号:
function logishangn=8192;u=4;X(1)=0.5;for i=1:n-1 X(i+1)=u*X(i)*(1-X(i)); % Logistic映射程序公式end;x=mean(X) % x为数组的平均值for i=1:n % 量化数组 if X(i)>=x X(i)=0 else X(i)=1 end a(i)=X(i) % 定义数组y(i)为a量化后的新数组end % 量化后的数组调用计算步数的程序leth=length(a) num=zeros(leth,1); %存放各个exhausting history中的comment的长度 t=2;n=length(a); % n为矩阵a的长度e=0; % e为步长,先清零p=1; % p为指针if a(2)==a(1) e=e+1; p=p+1; num(1)=1; % 前两个数的比较,相同则是表示断点在1;else e=e+1; p=p+2; num(1)=2;end; % 前两个数的比较,不同则是表示断点在2;while p<n ps=p; % ps为指针 el=0; % 一次小循环内每次比较两数组值后所得exhausting history长度;穷尽步长 emax=0; % 寻找一个exhausting history中所有el的最大值;最长步长的字数 pmax=0; for i=1:ps-1 j=i; while(a(j)==a(p)) % 作比较,逻辑比较 j=j+1; p=p+1; el=el+1; if p==n % 逻辑比较 p=p-1; break; end; end; if p>=pmax pmax=p; end; el=0; p=ps; end; num(t)=pmax+1-ps; t=t+1; p=pmax+1; e=e+1;end;if p==n e=e+1; num(t)=1end;s=0; % s为熵,并清零;for i=1:t % k为断点的个数; P(i)=num(i)/leth; % num为元素个数,leth为数组长度; s=s-P(i)*log2(P(i)); % 熵的计算公式 % bl(i)=s; % bl作画图表用 enddisp('********************');disp(e);disp(s);% plot(X,bl) % 作熵图% 设定X(1)从0.1到0.9所得的熵值为:% 0.1:2.1710; 0.2:1.7610; 0.3:1.8464; 0.4:2.2464; 0.5:1.5710;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -