一道matlab题;产生一个200*3的随机矩阵,其元素为(10,100)之间的随机数,要求将该矩阵所有记录以距离最近为

问题描述:

一道matlab题;
产生一个200*3的随机矩阵,其元素为(10,100)之间的随机数,要求将该矩阵所有记录以距离最近为原则,聚为5类,并在三维图形中显示该聚类结果,每类用不同的颜色符号表示,每个聚类中心用红色五角星表示;
另外,加点注释;
thanks
1个回答 分类:综合 2014-11-27

问题解答:

我来补答
%生成随机数据
clear;clc;
a=10*(1:2:9);
b=[0,sort(randint(1,4,[1,199])),200];
idx=randperm(200);
for n=1:5
X(idx((b(n)+1):b(n+1)),:)=unifrnd(a(n),a(n)+10,b(n+1)-b(n),3);
end
%聚类
Z=clusterdata(X,'maxclust',5);
%绘图
for n=1:5
Y(n,:)=mean(X(Z==n,:));
end
scatter3(X(:,1),X(:,2),X(:,3),10,Z);
hold on;
plot3(Y(:,1),Y(:,2),Y(:,3),'rp','markerfacecolor','r','markersize',10)
 
 
展开全文阅读
剩余:2000