⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shibie.m

📁 本代码是超变异模式识别的代码
💻 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 + -