matlab中欧式距离聚类
时间: 2023-10-08 18:02:48 浏览: 63
欧式距离聚类是一种常用的聚类算法,可以通过计算样本之间的欧式距离,来确定它们之间的相似度,并将相似度较高的样本划分到同一个聚类中。
在MATLAB中,可以使用`pdist`函数来计算样本之间的欧式距离。`pdist`函数的输入是一个包含样本数据的矩阵,每一行代表一个样本,每一列代表一个特征;输出是一个向量,其中的每个元素是相应样本之间的欧式距离。
接下来,可以使用`linkage`函数将欧式距离转化为一个聚类结果的连接矩阵。`linkage`函数的输入是`pdist`函数的输出,输出是一个方阵,其中的每个元素都代表两个样本之间的欧式距离。
最后,可以使用`cluster`函数将连接矩阵转化为最终的聚类结果。`cluster`函数的输入是`linkage`函数的输出,以及指定的聚类个数。输出是一个向量,其中的每个元素代表相应样本所属的聚类簇。
以下是MATLAB代码示例:
```matlab
% 生成样本数据
data = [1, 1; 2, 2; 4, 4; 5, 5; 7, 7; 8, 8];
% 计算欧式距离
distances = pdist(data);
% 将欧式距离转化为连接矩阵
linkageMatrix = linkage(distances);
% 将连接矩阵转化为聚类结果
numClusters = 2;
clusters = cluster(linkageMatrix, 'MaxClust', numClusters);
% 打印结果
disp(clusters);
```
运行以上代码,将得到一个包含样本聚类结果的向量。每个样本被分配到一个聚类簇中,且每个簇都有一个唯一的标识符。根据上述代码示例的样本数据,聚类结果可能是:`1 1 1 2 2 2`。