• 大小: 6KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2022-10-06
  • 语言: Matlab
  • 标签:

资源简介

本资源通过matlab编写的动态模糊聚类算法,并且包含形成模糊矩阵的不同方法,最后形成直观的动态聚类图,结果十分直观,对理解模糊算法及动态聚类有相当大的帮助。

资源截图

代码片段和文件信息

function FCAnalysis(R)%%定义函数
%%模糊聚类分析动态聚类
%%R模糊相似矩阵
[mn]=size(R);%%获得矩阵的行列数
if(m~=n|m==0)
    return;
end
for(i=1:n)
    R(ii)=1;%%修正错误
    for(j=i+1:n)
        if(R(ij)<0)
            R(ij)=0;
        elseif (R(ij)>1)
            R(ij)=1;
        end
        R(ij)=round(10000*R(ij))/10000;%%保留4位小数
        R(ji)=R(ij);
    end
end
js0=0;
while(1)%%求传递闭包
    R1=FCMaxMin(RR);
    js0=js0+1;
    if(R1==R)
        break;
    else 
        R=R1;
    end
end
lmd(1)=1;
k=1;
for(i=1:n)
    for(j=i+1:n)
        pd=1;%%找出所有不相同的元素
  for(x=1:k)
      if(R(ij)==lmd(x))
          pd=0;
          break;
      end
  end
  if(pd)
      k=k+1;
      lmd(k)=R(ij);
  end
end
end
for(i=1:k-1)
    for(j=i+1:k)
        if(lmd(i)            x=lmd(j);
            lmd(j)=lmd(i);
            lmd(i)=x;
        end
    end
end
for(x=1:k)%%按lmd(x)分类,分类数为flsz(x),临时用Sz记录元素序号
js=0;
flsz(x)=0;
for(i=1:n)
    pd=1;
for(y=1:js)
    if(Sz(y)==i)
        pd=0;
        break;
    end
end
if(pd)
  for(j=1:n)
      if(R(ij)>=lmd(x))
          js=js+1;
          Sz(js)=j;
      end
  end
  flsz(x)=flsz(x)+1;
end
end
end
for(i=1:k-1)
    for(j=i+1:k)
        if(flsz(j)==flsz(i))
            flsz(j)=0;
        end
    end
end
fl=0;%排除相同的分类
for(i=1:k)
    if(flsz(i))
        fl=fl+1;
        lmd(fl)=lmd(i);
    end
end
for(i=1:n)
    xhsz(i)=i;
end
for(x=1:fl)%%获得分类情况:对分类元素进行排序
  js=0;
  flsz(x)=0;
  for(i=1:n)pd=1;
    for(y=1:js)
        if(Sz(y)==i)
            pd=0;
            break;
        end
    end
    if(pd)
        if(js==0)
            y=0;
        end
      for(j=1:n)
          if(R(ij)>=lmd(x))
              js=js+1;
              Sz(js)=j;
          end
      end
      flsz(x)=flsz(x)+1;
      Sz0(flsz(x))=js-y;
    end
  end
js0=0;
for(i=1:flsz(x))
  for(j=1:Sz0(i))
      Sz1(j)=Sz(js0+j);
  end;
  for(j=1:n)
      for(y=1:Sz0(i))
          if(xhsz(j)==Sz1(y))
              js0=js0+1;
              Sz(js0)=xhsz(j);
          end
      end
  end
end
for(i=1:n)
    xhsz(i)=Sz(i);
end
end
for(x=1:fl)%%获得分类情况:每一子类的元素个数
  js=0;
  flsz(x)=0;
  for(i=1:n)
      pd=1;
      for(y=1:js)
          if(Sz(y)==i)
              pd=0;
              break;
          end
      end
      if(pd)
          if(js==0)
              y=0;
          end
          for(j=1:n)
              if(R(ij)>=lmd(x))
                  js=js+1;
                  Sz(js)=j;
              end
          end
          flsz(x)=flsz(x)+1;
          Sz0(flsz(x))=js-y;
      end
  end
  js0=1;
  for(i=1:flsz(x))
      y=1;
      for(j=1:flsz(x))
          if(Sz(y)==xhsz(js0))
              flqksz(xi)=Sz0(j);
              js0=js0+Sz0(j);
              break;
          end
          y=y+Sz0(j);   
    end    
  end
end

 F_dtjltx=figure(‘name‘‘动态聚类图‘‘color‘‘w‘);
  axis(‘off‘);
  Kd=20;Gd=40;y=fl*Gd+Gd;lx=80;
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        815  2010-04-07 13:43  FCProgramm\FCDataNormalization.m

     文件       7405  2010-04-07 14:28  FCProgramm\FCSimilarMatrix.m

     文件        360  2010-04-07 13:52  FCProgramm\FCMaxMin.m

     文件       4309  2010-04-07 14:29  FCProgramm\FCAnalysis.m

     文件       1751  2010-04-07 14:26  FCProgramm\FCMain.m

     文件       7405  2010-04-07 14:26  FCProgramm\FCSimilarMatrix.asv

     目录          0  2010-04-07 13:33  FCProgramm

----------- ---------  ---------- -----  ----

                22045                    7


评论

共有 条评论

相关资源