模糊聚类matlab程序

  • N9_473198
    了解作者
  • matlab
    开发工具
  • 7.4KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-02-22 09:44
    上传日期
积分最低,模糊聚类matlab程序,里面有相关系数法聚类,欧几里得法等聚类方法
模糊聚类.zip
  • 模糊聚类
  • F_JIR.m
    1.4KB
  • Max_Min.m
    421B
  • F_DtJIt.m
    6.5KB
  • F_DtJIt2.m
    5.4KB
  • F_JISjBzh.m
    1011B
  • F_JIJsFtjl.m
    1.9KB
  • F_jidtjl.m
    4.7KB
内容介绍
function [lmd,xhsz,flsz,flrlsz]=F_DtJIt(n,R)%定义函数 %函数功能动态聚类图 %n,模糊相似矩阵阶数;R,模糊相似矩阵 %返回值:lmd,分类水平数组;xhsz,最终序号数组 %返回值:flsz,分类数数组;flrlsz,子类容量数组 for i=1:n R(i,i)=1;%修正错误 for j=i+1:n if(R(i,j)<0) R(i,j)=0; else if(R(i,j)>1) R(i,j)=1; end R(i,j)=round(10000*R(i,j))/10000;%保留四位小数 R(j,i)=R(i,j); end end js0=0; while(1)%求传递闭包 R1=Max_Min(R,R); js0=js0+1; if(R1==R) break; else R=R1; end end lmd(1)=1; k=1; for i=1:n for j=i+1:n pd=1;%找出所有不同元素 for x=1:k if(R(i,j)==lmd(x)) pd=0; break; end end if(pd) k=k+1; lmd(k)=R(i,j); end end end for i=1:k-1 for j=i+1:k if(lmd(i)<lmd(j))%从小到大排序 x=lmd(j); lmd(j)=lmd(i); lmd(i)=x; end end end for x=1:k%按lmd(x)分类,分类数为flsz(x),临时用Sz记录元素符号 js=0; flsz(x)=0; for i=1:n pd=1; for y=1:js if(Sz(y)==i) pd=0; break; end end if(pd) for j=1:n if(R(i,j)>=lmd(x)) js=js+1; Sz(js)=j; end end flsz(x)=flsz(x)+1; end end end for i=1:k-1 for j=i+1:k if(flsz(j)==flsz(i)) flsz(j)=0; end end end fl=0;%排除相同分类 for i=1:k if(flsz(i)) fl=fl+1; lmd(fl)=lmd(i); end end for i=1:n xhsz(i)=i; end for x=1:fl%获得分类情况,对分类元素进行排序 js=0; flsz(x)=0; for i=1:n pd=1; for y=1:js if(Sz(y)==i) pd=0; break end end if(pd) if(js==0) y=0; end for j=1:n if(R(i,j)>=lmd(x)) js=js+1; Sz(js)=j; end end flsz(x)=flsz(x)+1; Sz0(flsz(x))=js-y; end end js0=0; for i=1:flsz(x) for j=1:Sz0(i) Sz1(j)=Sz(js0+j); end for j=1:n for y=1:Sz0(i) if(xhsz(j)==Sz1(y)) js0=js0+1; Sz(js0)=xhsz(j); end end end end for i=1:n xhsz(i)=Sz(i); end end for x=1:fl%获得分类中每一子类的元素个数 js=0; flsz(x)=0; for i=1:n pd=1; for y=1:js if(Sz(y)==i) pd=0; break end end if(pd) if(js==0) y=0; end for j=1:n if(R(i,j)>=lmd(x)) js=js+1; Sz(js)=j; end end flsz(x)=flsz(x)+1; Sz0(flsz(x))=js-y; end end js0=1; for i=1:flsz(x) y=1; for j=1:flsz(x) if(Sz(y)==xhsz(js0)) flrlsz(x,j)=Sz0(j); js0=js0+Sz0(j); break end end end end xhsz,flsz,lmd,flrlsz F_dtjltx=figure('name','动态聚类图','color','w'); axis('off'); Kd=30; Gd=40; if(n<20) lx=60; else lx=80; end if(flsz(1)==n) y=fl*Gd+Gd; text(24,y+Gd/2+8,'λ'); for i=1:n text(lx-5+i*Kd-0.4*Kd*(xhsz(i)>9),y+Gd/2+8,int2str(xhsz(i))); line([lx+i*Kd,lx+i*Kd],[y,y-Gd]); hxsz(i)=lx+i*Kd; end text(lx*1.5+n*Kd,y+Gd/2+8,'分类数'); js0=1; js1=0; text(16,y-Gd/2,'1.0000'); for i=1:flsz(1) js1=flrlsz(1,i)-1; if(js1) line([hxsz(js0),1+hxsz(js0+js1)],[y,y]); end line([(hxsz(js0+js1)+hxsz(js0))/2,(hxsz(js0+js1)+hxsz(js0))/2],[y,y-Gd]); hxsz(i)=(hxsz(js0+js1)+hxsz(js0))/2; js0=js0+js1+1; end text(lx*1.5+n*Kd,y-Gd/2,int2str(flsz(1))); else y=fl*Gd; text(24,y,'λ'); for i=1:n text(lx-5+i*Kd-0.4*Kd*(xhsz(i)>9),y,int2str(xhsz(i))); line([lx+i*Kd,lx+i*Kd],[y-Gd/4,y-Gd/2]); hxsz(i)=lx+i*Kd; end text(lx*1.5+n*Kd,y,'分类数'); js0=1; js1=0; y=y-Gd/2; text(16,y-Gd/2,'1.0000'); for i=1:flsz(1) js2=0; js1=js1+flrlsz(1,i); for j=1:n js2=js2+1; if(js2==js1) break end end if(j~=js0) line([hxsz(js0).(1+hxsz(j))],[y,y]); end line([(hxsz(js0)+hxsz(j))/2,(hxsz(js0)+hxsz(j))/2],[y,y-Gd]); hxsz(i)=(hxsz(js0)+hxsz(j))/2; js0=j+1; end text(lx*1.5+n*Kd,y-Gd/2,int2str(flsz(1))); end for x=2:fl js0=1; js1=0; y=y-Gd; text(16,y-Gd/2,num2str(lmd(x))); for i=1:flsz(x) js2=0; js1=js1+flrlsz(x,i); for j=1:flsz(x-1) js2=js2+flrlsz(x-1,j); if(js2==js1) break end end if(j~=js0) line([hxsz(js0),1+hxsz(j)],[y,y]); end line([(hxsz(js0)+hxsz(j))/2,(hxsz(js0)+hxsz(j))/2],[y,y-Gd]); hxsz(i)=(hxsz(js0)+hxsz(j))/2; js0=j+1; end text(lx*1.5+n*Kd,y-Gd/2,int2str(flsz(x))); end end
评论
    相关推荐
    • Matlab合集
      冈萨雷斯数字图像处理MATLAB版.中文版+数字图像处理第二版中文版(冈萨雷斯)+MATLAB-R2014a完全自学一本通+MATLAB R2016a完全自学一本通 素材文件+[模式识别与智能计算:MATLAB技术实现(第2版)].杨淑莹.扫描版
    • MATLAB教程
      MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程
    • MATLAB
      MATLAB 该项目是在matlab上完成的,涉及创建和移动宇宙飞船和机器人。 太空飞船和机器人是使用Matlab中的简单几何形状创建的,并通过连续变换矩阵进行移动。 这个项目教我如何使用变换矩阵(旋转,平移等)的概念...
    • MATLAB基础
      一本学习matlab的一本好书
    • MATLAB编译器
      基于MATLAB 2018b版本介绍MATLAB编译器。介绍如何利用编译器将MATLAB代码编译为独立应用程序或组件,并在没有安装MATLAB的计算机上进行部署。
    • matlabruntime
      通过奇点容器运行您的matlab项目 可以在没有MATLAB的容器中运行matlab代码。 为此,我们首先需要通过Matlab编译器在本地构建相应的Matlab代码的独立应用程序,然后使用具有Matlab运行时( 的容器)运行该应用程序 )...
    • matlab实现
      matlab实现 matlab实现matlab实现matlab实现matlab实现
    • matlab 教程
      matlab 信号处理资料,里面包含信号处理pdf文档,一些杂乱的程序和命令等
    • matlab教程
      matlab教程,PPT格式,包含 matlab基本知识、matlab入门、matlab作图、线性规划、无约束优化、非线性规划、统计工具箱、差值、微分方程等多项知识点,并且每个知识点独立成为PPT,内还含有matlab信号处理详解等文档...
    • matlab简介
      1.MATLAB 开发环境 1.1 MATLAB 的视窗环境 进入MATLAB之后,会看到一个视窗MATLAB Command Window称为指令视窗,它是你键入指令的地方同时 MATLAB也将计算结果显示在此。 1.2 简易计算 我们先从MATLAB的...