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

📄 mhjl_1.m

📁 压缩包里面有四个函数
💻 M
字号:
%模糊聚类程序

function f=mujl(x,lamda)
%输入原始数据以及lamda的值

if lamda>1
    disp('error!') %错误处理 
end

[n,m]=size(x);

xmax=max(x);xmin=min(x);
x=(x-xmin(ones(n,1),:))./(xmax(ones(n,1),:)-xmin(ones(n,1),:))

y=pdist(x);
disp('欧式距离矩阵:');
dist=squareform(y)   %欧氏距离矩阵

dmax=dist(1,1);
for i=1:n
    for j=1:n
        if dist(i,j)>dmax
            dmax=dist(i,j);
        end
    end
end

disp('处理后的欧氏距离矩阵,其特点为每项元素均不超过1:');
sdist=dist/dmax  %使距离值不超过1
disp('模糊关系矩阵:');
r=ones(n,n)-sdist  %计算对应的模糊关系矩阵

t=mhdj(r);
le=t-r;

while all(all(le==0)==0)==1         %如果t与r相等,则继续求r乘以r
    r=t;
    t=mhdj(r);
    le=t-r;
end

disp('模糊等价矩阵为:')
t

for i=1:n
    k=1;
    for j=1:n
        if t(i,j)>=lamda
            group(i,k)=j;
            k=k+1;
        end
    end
end

disp('聚类结果如下(数字0为自动填充数据,不是样本序号):')
group(1,:)
gru_val=1;
for i=2:n
    k=0;
    for j=1:i-1
        if all(group(i,:)==group(j,:))==1 %两行值完全相等,不输出
            k=1;break;
        end
    end
    if k==0
        disp('第i类样本序号:'),i
        gru_val=gru_val+1;
        disp(group(i,:)) %仅输出不重复的分类
    end
end

gru_val
    
            
    
    


⌨️ 快捷键说明

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