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

📄 fcm.m

📁 模糊聚类算法
💻 M
字号:
function [V1,f]=fcm(hist,c,V)
        %%hist1为直方图信息,c为聚类数,V为聚类中心矩阵,
        %计算聚类目标函数
   %欧式距离
 I=imread('E:\MATLAB6p5\work\我的程序\ga_fcm_levelset\rice.tif');
 hist=imhist(I);  
 c=2;
 V=round(rand(1,c)*255);
   a=size(hist,1);
   
   dist = zeros(a,c);
   for k=1:a
       for i=1:c
           dist(k,i)=sqrt(k-V(i));
       end
   end
   
    %求隶属度
    m=2;%m为加权指数
   u = zeros(a,c);
   b=0;
   ht=0;
   for k=1:a
       for i=1:c
           a_a=dist(k,i);
           if a_a==0
               temp=0;
           else
               temp=(1/a_a)^(2/(m-1));
           end
           ht=ht+temp;
       end
   end
   
   
   for k=1:a
       for i=1:c
           if dist(k,i)==0
               u(k,i)=0;
           else
               u(k,i)=abs(ht/(dist(k,i)^(2/(m-1))));
           end
       end
   end  
  

  
   %聚类中心更新
   div_1=zeros(1,c);div_2=zeros(1,c);
   for i=1:c
       for k=1:a
           div_1(i)=u(k,i)^m*hist(k)*k+div_1(i);
           div_2(i)=u(k,i)^m*hist(k)+div_2(i);
           
       end
       if div_2(i)==0
           v_out(i)=V(i);
       else
           v_out(i)=div_1(i)/div_2(i);
       end
       
       
       
   end
   
   
   %求目标函数
   J=0;
   for i=1:c
       for k=1:a
           J=abs((u(k,i)^m*dist(k,i)^2*hist(k)))+J;
       end
   end
   
   
   %适应度函数计算
   f=1/(1+J);
  
   
   %参数返回
   U=u;
   J1=J;
   V1=v_out;

⌨️ 快捷键说明

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