资源简介
使用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
- 上一篇:Ncut调试可以运行的程序(matlab)
- 下一篇:LT码的编译码程序MATLAB
评论
共有 条评论