模糊数学在聚类分析中的作用(matlab代码)..doc

模糊数学在聚类分析中的作用(matlab代码)..doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模糊数学在聚类分析中的作用(matlab代码).

function [M,N] = Example8_11 X=[1.8 2.1 3.2 2.2 2.5 2.8 1.9 2.0; 95 99 101 103 98 102 120 130; 0.15 0.21 0.18 0.17 0.16 0.20 0.09 0.11]; X=X %X=[80 10 6 2; %50 1 6 4; %90 6 4 6; %40 5 7 3; %10 1 2 4] [M,N]=fuzzy_jlfx(4,5,X); end %% function [M,N]=fuzzy_jlfx(bzh,fa,X)%得到聚类结果 [X]=F_JlSjBzh(bzh,X);%数据标准化 [R]=F_JlR(fa,X);%建立相似矩阵 [A]=fuzzy_cdbb(R);%得到传递闭包矩阵 [Alamd]=fuzzy_lamdjjz(A);%得到lamdf截矩阵从而得到聚类结果 [M,N]=F_JlDtjl(R);%动态聚类并画出聚类图 %% function [M,N]=F_JlDtjl(R) %clc; [A]=fuzzy_cdbb(R); U=unique(A); L=length(U); M=1:L; for i=L-1:-1:1 [m,n]=find(A==U(i)); N{i,1}=n; N{i,2}=m; A(m(1),:)=0; mm=unique(m); N{i,3}=mm; len=length(find(m==mm(1))); depth=length(find(m==mm(2))); index1=find(M==mm(1)); MM=[M(1:index1-1),M(index1+depth:L)]; % index2=find(MM==mm(2)); M=M(index1:index1+depth-1); M=[MM(1:index2-1),M,MM(index2:end)]; end M=[1:L;M;ones(1,L)]; h=(max(U)-min(U))/L; figure text(L,1,sprintf(%d,M(2,L))); text(L+1,1-h,sprintf(%d,L)); text(0,1,sprintf(%3.2f,1)); text(0,(1+min(U))/2,sprintf(%3.2f,(1+min(U))/2)); text(0,min(U),sprintf(%3.2f,min(U))); hold on for i=L-1:-1:1 m=N{i,2}; n=N{i,1}; mm=N{i,3}; k=find(M(2,:)==mm(1)); l=find(M(2,:)==mm(2)); x1=M(1,k); y1=M(3,k); x2=M(1,l); y2=M(3,l); x=[x1,x1,x2,x2]; M(3,[k,l])=U(i); M(1,[k,l])=sum(M(1,[k,l]))/length(M(1,[k,l])); y=[y1,U(i),U(i),y2]; plot(x,y); text(i,1,sprintf(%d,M(2,i))); text(M(1,k(1)),U(i)+h*0.1,sprintf(%3.2f,U(i))); text(L+1,1-i*h-h,sprintf(%d,L-i)); end axis([0 L+1 min(U) max(U)]) axis off hold off end end %% function[X]=F_JlSjBzh(cs,X)%定义函数 %模糊聚类分析数据标准化变换: [X]=F_JlSjBzh(cs,X) %X,数据矩阵 %cs=0,不变换;cs=1,标准差变换;cs=2,极差变换;cs=其它,最大值规格化 if(cs==0)return;end [n,m]=size(X);%获得矩阵的行列数 if(cs==1)%平移?标准差变换 for(k=1:m)xk=0; for(i=1:n)xk=xk+X(i,k);end xk=xk/n;sk=0; for(i=1:n)sk=sk+(X(i,k)-xk)^2;end sk=sqrt(sk/n); for(i=1:n)X(i,k)=(X(i,k)-xk)/sk;end

文档评论(0)

fglgf11gf21gI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档