• 大小: 1KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-08
  • 语言: Matlab
  • 标签: MATLAB聚类  

资源简介

使用Fisher最优分割法对有序样本进行聚类的matlab程序。 格式:[P,D]=pfisher(x,m) x为待分隔的有序样本,为每行为一个样本 m为分隔数,分成m组,需要m-1个分隔点 P为分隔点列表,第一个为第一分隔点,第n个为第n分隔点,共n-1个 D为每次分隔的组内离差平方和,与P中元素一一对应

资源截图

代码片段和文件信息

function [PD]=pfisher(xm)
% x为待分隔的有序样本,为列向量,共n个样本
% m为分隔数,分成m组,需要m-1个分隔点
% P为分隔点列表,第一个为第一分隔点,第n个为第n分隔点,共n-1个
% D为每次分隔的组内离差平方和,与P中元素一一对应
% P1为待选分隔点列表,D1为与P1中分隔点对应的组内离差平方和

%下面赋初值
n=size(x1);
P1=[1:n-1]‘;
D1=zeros(n-11);
P=[];
D=[];
S=[]; %S为分割点排序向量
Sn=0; %n为S中元素数量

%下面求分隔点次序和对应距离
for Sn=1:m-1
%下面求每个备选分隔点对应的组内离差平方和
    for i=1:size(P11) %以下循环求D1(i)
        S=[P;P1(i)]; %从P1中取出元素加入S
        S=sort(S); %对S进行排序
        for i1=1:Sn  %遍历S中的元素,求P1(i)对应的组内离差平方和,Sn为S中元素个数
            if i1==1
                G=x(1:S(1

评论

共有 条评论