各位大神,怎么做能将图中上面两个类各自只显示中心点。也就是红色的累两个点合成为一个点
clear,clc,close all
%导入数据
data = [1 0;2 0;3 5;4 8;5 15;6 0;7 0];
plot(data(:,1),data(:,2),'linestyle','none','marker','x')
%
close all
dis=pdist(data,'euclidean'); %用pdist函数计算变量之间的距离
SF =squareform(dis);
datalink = linkage(dis,'average'); %用 linkage函数定义变量之间的连接
%
% 绘制树状图
dendrogram(datalink);
%
T = cluster(datalink,'maxclust',3); %用cluster函数创建聚类
figure;
%绘制经过聚类的原始数据
gscatter(data(:,1),data(:,2),T)

 Réponse acceptée

0 votes

可能需要做一些对应计算
更多的可参考
[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);

Plus de réponses (0)

Catégories

En savoir plus sur Statistics and Machine Learning Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!