1、基于语言直觉模糊集的应急物流预案决策——matlab复现

 TOPSIS方法Matlab复现代码

原文地址:基于语言直觉模糊集的应急物流预案决策

%% 求综合矩阵每个属性的最大最小值
C = num2cell(A,2)
D = reshape(C,4,4)

[n,m] = size(D)

for i=1:16
    Sco(i) = (16+D{i}(1)+D{i}(2)-D{i}(3)-D{i}(4))/4; 
end
Z = reshape(Sco,4,4);  
max_Z = max(Z);
min_Z = min(Z);

%% 求每个方案与正理想值之间的距离

% 得正理想值得位置


[r,c]=find(Z == max_Z)

% 得出每列理想值
for i=1:4
    Max_Z(i)=D(r(i),c(i));
end

Max_Zz = repmat(Max_Z,n,1);

% 求每列评价信息与理想值之间的距离
for i = 1:16
    D_P(i) =(abs(D{i}(1)-Max_Zz{i}(1))...
        +abs(D{i}(2)-Max_Zz{i}(2))...
        +abs(D{i}(3)-Max_Zz{i}(3))...
        +abs(D{i}(4)-Max_Zz{i}(4))...
        +abs(D{i}(2)-Max_Zz{i}(2)+D{i}(4)-Max_Zz{i}(4))...
        +abs(D{i}(1)-Max_Zz{i}(1)+D{i}(3)-Max_Zz{i}(3)))/32;
end

D_P=reshape(D_P,4,4)
D_Pf=mean(D_P,2)

%% 求每个方案与负理想值之间的距离

[r,c]=find(Z == min_Z)

for i=1:4
    Min_Z(i)=D(r(i),c(i));
end

Min_Zz = repmat(Min_Z,n,1);

for i = 1:16
    D_N(i) =(abs(D{i}(1)-Min_Zz{i}(1))...
        +abs(D{i}(2)-Min_Zz{i}(2))...
        +abs(D{i}(3)-Min_Zz{i}(3))...
        +abs(D{i}(4)-Min_Zz{i}(4))...
        +abs(D{i}(2)-Min_Zz{i}(2)+D{i}(4)-Min_Zz{i}(4))...
        +abs(D{i}(1)-Min_Zz{i}(1)+D{i}(3)-Min_Zz{i}(3)))/32;
end

D_N=reshape(D_N,4,4)
D_Nf=mean(D_N,2)

%% 计算方案x的贴近度
    
CO = D_Nf./(D_Nf+D_Pf)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值