matlab聚类分析
1. 用Matlab编程实现
运用Matlab中的一些基本矩阵计算方法,通过自己编程实现聚类算法,在此只讨论根据最短距离规则聚类的方法。
调用函数:
min1.m——求矩阵最小值,返回最小值所在行和列以及值的大小
min2.m——比较两数大小,返回较小值
std1.m——用极差标准化法标准化矩阵
ds1.m——用绝对值距离法求距离矩阵
cluster.m——应用最短距离聚类法进行聚类分析
print1.m——调用各子函数,显示聚类结果
聚类分析算法
假设距离矩阵为vector, a阶,矩阵中最大值为max,令矩阵上三角元素等于max
聚类次数=a-1,以下步骤作a-1次循环:
求改变后矩阵的阶数,计作c
求矩阵最小值,返回最小值所在行e和列f以及值的大小g
forl=1:c,为vector(c+1,l)赋值,产生新类
令第c+1列元素,第e行和第f行所有元素为,第e列和第f列所有元素为max
源程序如下:
%std1.m,用极差标准化法标准化矩阵
function std=std1(vector)
max=max(vector); %对列求最大值
min=min(vector);
[a,b]=size(vector); %矩阵大小,a为行数,b为列数
for i=1:a
forj=1:b
std(i,j)= (vector(i