可能需要做一些对应计算
更多的可参考
[attach]332027[/attach]
clc; clear all; close all
%导入数据
data = [1 0;2 0;3 5;4 8;5 15;6 0;7 0];
figure;
plot(data(:,1),data(:,2),'linestyle','none','marker','x')
dis=pdist(data,'euclidean'); %用pdist函数计算变量之间的距离
SF =squareform(dis);
datalink = linkage(dis,'average'); %用 linkage函数定义变量之间的连接
figure;
% 绘制树状图
dendrogram(datalink);
T = cluster(datalink,'maxclust',3); %用cluster函数创建聚类
figure;
%绘制经过聚类的原始数据
gscatter(data(:,1),data(:,2),T)
xm = get(gca, 'XLim');
ym = get(gca, 'YLim');
T2 = [];
for i = 1 : length(T)
if isempty(find(T2==T(i)))
T2(end+1) = T(i);
end
end
data2 = [];
for i = 1 : length(T2)
id = find(T==T2(i));
m = mean(data(id,:), 1);
data2(end+1, :) = m;
end
figure;
gscatter(data2(:,1),data2(:,2),T2)
set(gca, 'XLim', xm, 'YLim', ym);
