📄 shibie.m
字号:
clear
m=4;
nl=20;
nn=10;
mn=50;
ng=20;
pag=zeros(m,nn,nl);
pab=rand(m,ng+1,mn,nl);
pbpab=zeros(m,ng,nl);
gbpab=zeros(m,nl);
aff=zeros(m,ng,mn);
maxaff=zeros(m,ng);
gmaxaff=zeros(1,m);
for i=1:m
for j=1:nn
fn=normrnd(0,0.005,1,nl);
t=0.05:0.05:0.05*nl;
if i==1
for jj=1:nl
pag(i,j,jj)=sin(2*pi*(jj))+fn(jj);
end
elseif i==2
for jj=1:nl
pag(i,j,jj)=cos(2*pi*(jj))+fn(jj);
end
elseif i==3
for jj=1:nl
pag(i,j,jj)=t(jj)+fn(jj);
end
else
tmp=0.5*(ones(1,nl)+fn);
for jj=1:nl
pag(i,j,jj)=tmp(jj);
end
end
end
end
for mm=1:m
s(mm)=0;
for k=1:ng
for i=1:mn
for j=1:nn
temp=0
for jj=1:nl
temp=temp+(pab(mm,k,i,jj)-pag(mm,j,jj))*(pab(mm,k,i,jj)-pag(mm,j,jj));
end
aff(mm,k,i)=aff(mm,k,i)+temp;
end
end
tp=0;
tmp=zeros(1,nl);
for i=1:mn-2
for j=1:mn-1
if aff(mm,k,j)<aff(mm,k,j+1)
tp=aff(mm,k,j);
aff(mm,k,j)=aff(mm,k,j+1);
aff(mm,k,j+1)=tp;
for jj=1:nl
tmp(1,jj)=pab(mm,k,j,jj);
pab(mm,k,j,jj)=pab(mm,k,j+1,jj);
pab(mm,k,j+1,jj)=tmp(1,jj);
end
end
end
end
maxaff(mm,k)=aff(mm,k,mn);
s(mm)=s(mm)+maxaff(mm,k);
for jj=1:nl
pbpab(mm,k,jj)=pab(mm,k,mn,jj);
end
subaff=zeros(mn,nl);
for jj=1:nl
for kk=1:mn
tep=0;
for jk=1:nn
tep=tep+(pab(mm,k,kk,jj)-pag(mm,jk,jj))*(pab(mm,k,kk,jj)-pag(mm,jk,jj));
end
subaff(kk,jj)=tep;
end
end
subtmp=zeros(1,nl);
subtmp=min(subaff);
subbpab=zeros(1,nl);
for jj=1:nl
for kk=1:mn
if subaff(kk,jj)==subtmp(1,jj)
subbpab(1,jj)=pab(mm,k,kk,jj);
end
end
end
for jj=1:nl
pab(mm,k+1,mn,jj)=pab(mm,k,mn,jj);
pab(mm,k+1,mn-1,jj)=subbpab(1,jj);
end
for ii=1:mn-2
for jj=1:nl
pab(mm,k+1,ii,jj)=rand-rand;
end
end
end
s(mm)=s(mm)/ng;
end
for mm=1:m
for jj=1:nl
gbpab(mm,jj)=pbpab(mm,ng,jj);
end
gmaxaff(1,mm)=1/s(mm);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -