資源簡介
使用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
評論
共有 條評論