| 
 
	积分2892贡献 精华在线时间 小时注册时间2013-7-15最后登录1970-1-1 
 | 
 
| 
如题,最近写毕业论文,需要用聚类分析做一下全国辐射的分区,无奈MATLAB水平差,想问下哪位大神可以指点一二?多谢
x
登录后查看更多精彩内容~您需要 登录 才可以下载或查看,没有帐号?立即注册 
  
 问题1、源数据该怎么处理?是这个格式么:站点号,辐射值,经度,纬度。
 
 问题2、MATLAB自带的kmeans函数,调用的话,参数怎么设置?怎么体现地理位置信息?
 function [idxbest, Cbest, sumDbest, Dbest] = kmeans(X, k, varargin)
 问题3、网上的这个例子,如何修改可以在我这里使用?这个X是随机的,我怎么把我的源数据放进去?
 
 复制代码%随机获取150个点
X = [randn(50,2)+ones(50,2);randn(50,2)-ones(50,2);randn(50,2)+[ones(50,1),-ones(50,1)]];
 
opts = statset('Display','final');
 
%调用Kmeans函数
%X N*P的数据矩阵
%Idx N*1的向量,存储的是每个点的聚类标号
%Ctrs K*P的矩阵,存储的是K个聚类质心位置
%SumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
%D N*K的矩阵,存储的是每个点与所有质心的距离;
 
[Idx,Ctrs,SumD,D] = kmeans(X,3,'Replicates',3,'Options',opts);
 
%画出聚类为1的点。X(Idx==1,1),为第一类的样本的第一个坐标;X(Idx==1,2)为第二类的样本的第二个坐标
plot(X(Idx==1,1),X(Idx==1,2),'r.','MarkerSize',14)
hold on
plot(X(Idx==2,1),X(Idx==2,2),'b.','MarkerSize',14)
hold on
plot(X(Idx==3,1),X(Idx==3,2),'g.','MarkerSize',14)
 
%绘出聚类中心点,kx表示是圆形
plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)
plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)
plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)
 
legend('Cluster 1','Cluster 2','Cluster 3','Centroids','Location','NW')
 
Ctrs
SumD
多谢多谢
 
 | 
 |