📄 function_k_mean_clustering.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 + -