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

📄 function_k_mean_clustering.m

📁 k-means聚类算法
💻 M
字号:
function [label_matrix]=funtion_k_mean_clustering(matrix,c)

[x,y]=size(matrix);

label_matrix=zeros(x,y);
class=zeros(1,c);
value=zeros(1,c);

%重新产生matrix矩阵,使它的范围在0-100之间
max_matrix=max(max(matrix));
min_matrix=min(min(matrix));
matrix=matrix./(max_matrix-min_matrix).*100;

max_matrix=max(max(matrix));
min_matrix=min(min(matrix));

%随机产生miu值,按照最近邻分为c类;
miu=rand(1,c)*(max_matrix-min_matrix)+min_matrix;

sign=1;stop_n=0;
while sign~=0 & stop_n~=1000
    
	for i=1:1:x
        for j=1:1:y
            for k=1:1:c
                difference(1,k)=abs(miu(1,k)-matrix(i,j));
            end
            [value_min,location_min]=min(difference);
            label_matrix(i,j)=location_min;
            class(1,location_min)=class(1,location_min)+matrix(i,j);
            value(1,location_min)=value(1,location_min)+1;
        end
	end
	
    sign=0;
	%重新计算miu值
    for i=1:1:c
        if value(1,i)~=0
            miu1(1,i)=class(1,i)./value(1,i);
        else
            miu1(1,i)=0;
        end
    end
    
    for i=1:1:c
        if abs(miu1(1,i)-miu(1,i))>0.05
            sign=sign+1;
        end
    end
    miu=miu1;
    stop_n=stop_n+1;
end
    
  stop_n          

⌨️ 快捷键说明

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