tkmeans2.m

来自「一个关于数据聚类和模式识别的程序,在生物化学,化学中因该都可以用到.希望对大家有」· M 代码 · 共 44 行

M
44
字号
if 0
load table;
data_n=size(a,1);
cluster_n=3;
a=(a+a')/2;
tic;
[center,U]=kmeans2mex(a,cluster_n);
toc;
center
else
data_n=400;
cluster_n=3;
data1 = ones(data_n, 1)*[0 0] + randn(data_n, 2)/5;
data2 = ones(data_n, 1)*[0 1] + randn(data_n, 2)/5;
data3 = ones(data_n, 1)*[1 0] + randn(data_n, 2)/5;
xy = [data1; data2; data3];
for i=1:data_n,
	r=round(rand*3);
	if r==1
		xy(i,:)=[-1 -1];
	elseif r==2
		xy(i,:)=[1 -1];
	else
		xy(i,:)=[0 1];
	end
	xy(i,:)=xy(i,:)*2+[randn randn];
end
for i=1:data_n,
	for j=1:data_n,
		dist(i,j)=norm(xy(i,:)-xy(j,:));
	end
end
c=['y' 'c' 'b' 'g'];
tic; [center,U]=kmeans2(dist,cluster_n); toc;
tic; [center,U]=kmeans2mex(dist,cluster_n); toc;
hold on;
for i=1:cluster_n,
	j=find(U(i,:));
	plot(xy(j,1),xy(j,2),[c(i) '.']);
end
plot(xy(center,1),xy(center,2),'ro');
hold off;
end

⌨️ 快捷键说明

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