📄 cluster.m
字号:
function [ p_cluster] = cluster(p_sample, k, feature_num, sample_num)% Detailed explanation goes here, feature_num and sample_num are% dimensions of the sample,k represents the ideal classified numbers load('test.mat');%initialize the k centres;p_cluster = max_min(p_sample);p_cluster = p_cluster';%(p_cluster-500*51)%iterative processfor i=1:500 p_dist = dist(p_cluster, p_sample); [Y, I] = min(p_dist); clear Y; %recomputering the centers for j=1:k sum = zeros(feature_num,1); count = 0; for m=1:sample_num if(I(m) == j) sum = sum + p_sample(:,m); count=count+1; end end if(count > 0) sum = sum/count; p_cluster(j,:) = sum'; end endendfor m=1:sample_num if(I(m)==1) plot(p_sample(1,m),p_sample(2,m),'ro'); end hold on; if(I(m)==2) plot(p_sample(1,m),p_sample(2,m),'yo'); end hold on if(I(m)==3) plot(p_sample(1,m),p_sample(2,m),'go'); hold on endendradius= zeros(1,k);for j=1:k sub = find(I == j); p_max= dist(p_cluster(j,:),p_sample(:,sub)); [Y,M]= max(p_max); clear M; radius(j)=Y;endp_cluster = p_cluster';plot(p_cluster(1,:),p_cluster(2,:),'b*');hold on;y=p_cluster(2,:);x=p_cluster(1,:);for i=1:k plotcircle(x(i),y(i),radius(i)+0.5);endhold on;bisector(p_cluster(:,1),p_cluster(:,3));hold on;bisector(p_cluster(:,1),p_cluster(:,2));hold on;bisector(p_cluster(:,2),p_cluster(:,3));hold on;axis([0 35 0 25]);end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -