- 积分
- 2892
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-7-15
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如题,最近写毕业论文,需要用聚类分析做一下全国辐射的分区,无奈MATLAB水平差,想问下哪位大神可以指点一二?多谢
问题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
复制代码
多谢多谢
|
|