⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transfer.m

📁 模糊聚类分析的源代码
💻 M
字号:
function transfer(X);
%此函数是用于模糊聚类分析中的传递方法来求聚类
%此函数的输入参数是模糊相似矩阵
Dimension=size(X);
n=Dimension(1);
m=Dimension(2);
%检查输入参数的有效性
if n~=m
     error('输入的矩阵必须是方阵')
end
for I=1:(n-1)
   for J=(I+1):n
      if (X(I,J)~= X(J, I)| X(I,J)<0| X(I,J)>1)
       error('输入的矩阵必须满足对称性 ,或不是模糊相似矩阵')
      end
  end
end
for I=1 :n
      if (X( I,I)~=1)
           error ('输入的矩阵必须满足自反性');
      end
end
%获得模糊相似矩阵中的分类系数矩阵
numda(1)=1;
for I=1:(n-1)
  for J=(I+1):n
    flag=1;
    for K=1:length (numda)
      if X(I,J)== numda ( K)
        flag=0;
        break;
      end
    end
    if flag==1
    numda (length (numda)+1)=X(I,J);
    end
  end
  end
%下面程序用于将分类系数矩阵由大到小排序
t=1;
for I=1:length (numda)
  ordered_numda (t)=max(numda);
  t=t+1;
  index=find(numda== max(numda));
  numda (index)=[ ];
end
%开始聚类
for I=1:n
  A( I)=I;
end
for I=1:length (ordered_numda)
  disp ('当分类系数是:');
  disp (ordered_numda ( I));
  aa=ordered_numda ( I);
  AA=A;
  disp ('聚类为');
   loop1=1;
  loop2=1;
  while loop1
    if ~isempty(AA)
    xi=AA(1);
    end
    XX=[ ];
    Q=[ ];
    while loop2
      for J=1:n
        if (X(xi,J)>= aa)&isempty(intersect (XX, J))
          XX=union(XX ,J);
          Q(length (Q)+1)=J;
        end
      end
    if isempty(Q)
      disp (XX);
      break;
    else
      xi=Q(1);
      Q(1)=[ ];
    end
  end
  AA=setdiff (AA ,XX);
    if isempty(AA)
      break;
      end
  end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -