?? 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 + -