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

📄 caverage.asv

📁 C均值算法
💻 ASV
字号:
clear;clc;
x=[0,3,2,1,5,4,6,5,6,7];y=[0,8,2,1,3,8,3,4,4,5];X=x+j*y;
len=length(X);
flag=zeros(1,len);
disp('请输入类别数:'); C=input('C='); % 聚类中心数
% 确定聚类中心
cen=zeros(1,2*C);
len=zeros(1,C);
cen(1)=x(1);cen(2)=y(1); %设定第一个聚类中心
for k = 2:1:C
    maxd = zeros(1,len);
% 求每个特征点与前k-1个聚类中心的距离之和
   for i=1:1:len
      for t=1:1:k-1
       d = (x(i)-cen(2*t-1)).^2+(y(i)-cen(2*t)).^2;
       len(t)=d;
       
      end
   end
d=find(maxd==max(maxd)); % 第k个聚类中心是与前k-1个聚类中心相距最远的特征点
cen(2*k-1) = x(d(1));cen(2*k)=y(d(1));
end
%聚类,更新聚类中心
mind=zeros(1,C);
for i=1:1:len
    for k=1:2:2*C
        d1=(x(i)-cen(k)).^2+(y(i)-cen(k+1)).^2;
        mind((k+1)/2)=mind((k+1)/2)+d1;
    end
    D=find(mind==min(mind));
    K=D(1)*2-1;flag(i)=D(1);
    cen(K)=(cen(K)+x(i))/2;cen(K+1)=(cen(K+1)+y(i))/2;
    mind=zeros(1,C);
end
plot(X(flag==1),'x'),axis([0,10,0,10]);
hold on;
plot(X(flag==2),'d');
plot(X(flag==3),'s');
plot(X(flag==4),'v');
plot(X(flag==5),'h');
plot(X(flag==6),'o');
plot(X(flag==7),'>');
plot(X(flag==8),'+');
plot(X(flag==9),'<');
plot(X(flag==10),'.');
grid on;
hold off;

  
            
    
        
    
    

⌨️ 快捷键说明

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