[未答复] 求助如何添加for循环以计算输出100次的均值,需要输出每个打分对应5个灰类的函数值计算100次的均值

[复制链接]
bzxxg 发表于 2021-11-23 21:27:25
%计算
xx=[65 82 78 73
72 75 78 80
67 68 67 68
88 82 87 86
92 94 98 99];  %5位专家为4个指标打分矩阵
grey1=[90 95;90 95;90 95;90 95];               %灰类指标1:[80 95;75 90;90 100;80 90]
grey2=[80 90;80 90;80 90;80 90];    %灰类指标2:[70 85 95;65 85 90;70 85 95;70 80 90]
grey3=[70 80;70 80;70 80;70 80];    %灰类指标3:[60 75 85;60 75 85;60 75 85;60 70 80]
grey4=[50 70;50 70;50 70;50 70];    %灰类指标4:[50 65 75;50 65 75;50 65 75;50 60 70]
grey5=[25 50;25 50;25 50;25 50];                %灰类指标5:[50 70;50 70;50 70;50 70]
xxrow=size(xx,1);  %聚类对象个数
xxcol=size(xx,2);  %每个聚类对应的指标个数
greynum=5;         %灰类指标的个数
bk=zeros(xxrow,greynum);
for k=1:xxrow
    %灰色白化权函数
    yy=zeros(xxcol,greynum);
    %灰类指标为1的白化权函数值
       i=1;     
    for r=1:xxcol
        yy(r,i)=upperlimit1(grey1(r,1),grey1(r,2),xx(k,r));
    end
    i=2;     %灰类指标为2的白化权函数值
    for r=1:xxcol
        yy(r,i)=moderate1(grey2(r,1),grey2(r,2),xx(k,r));
    end
    i=3;      %灰类指标为3的白化权函数值
    for r=1:xxcol
         yy(r,i)=moderate2(grey3(r,1),grey3(r,2),xx(k,r));
    end
    i=4;      %灰类指标为4的白化权函数值
    for r=1:xxcol
      yy(r,i)=moderate3(grey4(r,1),grey4(r,2),xx(k,r));
    end
    i=5;      %灰类指标为5的白化权函数值
    for r=1:xxcol
        yy(r,i)=floorlimit1(grey5(r,1),grey5(r,2),xx(k,r));
    end
    prik=sprintf('第%d个对象的白化权函数值',k);
    disp(prik);
    disp(yy);
end
function upx=upperlimit1(x1,x3,y)

if y<x1
        upx=0;
    else  
        if (y>x1)&&(y<x3)
        Enn1=randn(1)*0.17+1.67;
        upx(=exp(-(y-95).^2./(2.*Enn1.^2));
        else
            upx=1;
        end

end
    %适中测度白化权函数
function moderate3x=moderate3(x1,x3,y)

if (y>x1)&&(y<=x3)
        Enn1=randn(1)*0.17+1.67;
        moderate3x=exp(-(y-75).^2./(2.*Enn1.^2));
        else  
           moderate3x=0;
        end

    end
%适中测度白化权函数
function moderate2x(a)=moderate2(x1,x3,y)

if (y>x1)&&(y<=x3)  
        Enn1=randn(1)*0.17+1.67;
        moderate2x=exp(-(y-85).^2./(2.*Enn1.^2));
        else  
           moderate2x=0;
    end

    end
%适中测度白化权函数
function moderate1x=moderate1(x1,x3,y)  
if (y>x1)&&(y<=x3)  
       Enn1=randn(1)*0.33+3.33;
        moderate1x=exp(-(y-60).^2./(2.*Enn1.^2));
        else  
           moderate1x=0;
end

    end
%   下限测度白化权函数
function floor1x=floorlimit1(x1,x2,y)  
if y<=x1
       floor1x=1;
    else  
        if (y>x1)&&(y<x2)
       Enn1=randn(1)*0.83+8.33;     
       floor1x=exp(-(y-Ex1).^2./(2.*Enn1.^2));
        else  
            floor1x=0;
        end

    end

您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表