如何修改matlab中k-means程序?

我想将该k-means程序点状聚类!
修改为负荷曲线的聚类
如图:
图片说明
改成这类
图片说明

data=Untitled; 
N=3;%设置聚类数目
[m,n]=size(data);
pattern=zeros(m,n+1);
center=zeros(N,n);%初始化聚类中心
pattern(:,1:n)=data(:,:);
for x=1:N
    center(x,:)=data( randi(300,1),:);%第一次随机产生聚类中心
end
while 1
distence=zeros(1,N);
num=zeros(1,N);
new_center=zeros(N,n);

for x=1:m
    for y=1:N
    distence(y)=norm(data(x,:)-center(y,:));%计算到每个类的距离
    end
    [~, temp]=min(distence);%求最小的距离
    pattern(x,n+1)=temp;         
end
k=0;
for y=1:N
    for x=1:m
        if pattern(x,n+1)==y
           new_center(y,:)=new_center(y,:)+pattern(x,1:n);
           num(y)=num(y)+1;
        end
    end
    new_center(y,:)=new_center(y,:)/num(y);
    if norm(new_center(y,:)-center(y,:))<0.1
        k=k+1;
    end
end
if k==N
     break;
else
     center=new_center;
end
end
[m, n]=size(pattern);

%最后显示聚类后的数据
figure;
hold on;
for i=1:m
    if pattern(i,n)==1 
         plot(pattern(i,:),'r*');
    elseif pattern(i,n)==2
         plot(pattern(i,:),'g*');
    elseif pattern(i,n)==3
         plot(pattern(i,:),'b*');
    elseif pattern(i,n)==4
         plot(pattern(i,:),'y*');
    end
end
grid on;

https://www.cnblogs.com/tiandsp/archive/2013/04/24/3040883.html

https://blog.csdn.net/a493823882/article/details/79282425
要自己改噢