资源简介
最大最小距离算法matlab代码,博客地址:http://blog.csdn.net/guyuealian/article/details/53708042
代码片段和文件信息
%%%%%%%%%%%%%%%%%
%函数名称 MaxMinDisFun(xTheta)
%输入参数:
% x : x为n*m的特征样本矩阵,每行为一个样本,每列为样本的特征
% Theta:即θ,可用试探法取一固定分数,如:1/2
%输出参数:
% pattern:输出聚类分析后的样本类别
%函数功能 :利用最大最小距离算法聚类样本数据,
%
%%%%%%%%%%%%%%%%%%%%%
function [pattern]=MaxMinDisFun(xTheta)
maxDistance=0;
index=1;%相当于指针指示新中心点的位置
k=1; %中心点计数,也即是类别
center=zeros(size(x)); %保存中心点
patternNum=size(x1); %输入的数据数(样本数)
%distance=zeros(patternNum3);%distance每列表示所有样本到每个聚类中心的距离
minDistance=zeros(patternNum1);%取较小距离
pattern=(patternNum);%表示类别
center(1:)=x(1:);%第一个聚类中心
pattern(1)=1;
for i=2:patternNum
distance(i1)=sqrt((x(i:)-center(1:))*(x(i:)-center(1:))‘);%欧氏距离,与第1个聚类中心的距离
minDistance(i1)=distance(i1);
pattern(i)=1;%第一类
if(maxDistance maxDistance=distance(i1);%与第一个聚类中心的最大距离
index=i;%与第一个聚类中心距离最大的样本
end
end
k=k+1;
center(k:)=x(index:);%把与第一个聚类中心距离最大的样本作为第二 个聚类中心
pattern(index)=2;%第二类
minDistance(index1)=0;
while 1
for i=2:patternNum
if(minDistance(i1)~=0)
distance(ik)=sqrt((x(i:)-center(k:))*(x(i:)-center(k:))‘);%与第k个聚类中心的距离
if(minDistance(i1)>distance(ik))
minDistance(i1)=distance(ik);
pattern(i)=k;
end
end
end
max=0;
for i=2:patternNum
if((max max=minDistance(i1);
index=i;
end
end
if(max>(maxDistance*Theta))
k=k+1;
center(k:)=x(index:);
pattern(index)=k;
minDistance(index1)=0;
else
break;
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1995 2016-12-17 17:04 最大最小距离算法matlab代码\MaxMinDisFun.m
文件 110 2016-12-17 15:18 最大最小距离算法matlab代码\test.m
目录 0 2016-12-17 17:09 最大最小距离算法matlab代码\
- 上一篇:matlab 分布傅里叶算法
- 下一篇:.net 个人博网站客
评论
共有 条评论