K-means聚类算法是一种非层次聚类算法,在最小误差的基础上将数据划分了特定的类,类间利用距离作为相似度指标,两个向量之间的距离越小,其相似度就越高。程序读取全国省市经纬度坐标,然后根据经纬度坐标进行K-means聚类分析。
%% 读入全国省市经纬度坐标
clear;
% 初始化参数
coordinate_file = 'lat_lng.xlsx'; % 经纬度坐标
[num,txt] = xlsread(coordinate_file);
%% 基本信息获取
Lat=num(1:end,1);
Lng=num(1:end,2);
Max_lat=max(Lat);
Min_lat=min(Lat);
Max_lng=max(Lng);
Min_lng=min(Lng);
figure(1);
plot(Lng,Lat,'b.','markersize',6);
%% 聚类分析
[type,center]=kmeans(num,7);
rows=size(center,1);
for i=1:rows
fprintf('聚类号为%1.f的聚类中心坐标为:%f,%f\n',i,center(i,1),center(i,2));
end
h=figure(2);
hold on;
plot(Lng(type