當前位置:編程學習大全網 - 網站源碼 - 如何利用matlab寫topsis程序

如何利用matlab寫topsis程序

function [ output_args ] = TOPSIS( A,W,M,N )

%topsis法,指標歸壹化采用向量歸壹化法,即正負指標均存在

%A為決策矩陣,W為權值矩陣,M為正指標所在的列,N為負指標所在的列

[ma,na]=size(A);

A=xiangliangguiyi(A); %用向量歸壹化法得到[標準決策矩陣]

for i=1:na

B(:,i)=A(:,i)*W(i); %按列循環得到[加權標準化矩陣]

end

V1=zeros(1,na); %初始化理想解和負理想解

V2=zeros(1,na);

BMAX=max(B); %取加權標準化矩陣每列的最大值和最小值

BMIN=min(B); %

for i=1:na

if i<=size(M,2) %循環得到理想解和負理想解,註意判斷,不然會超個數

V1(M(i))=BMAX(M(i));

V2(M(i))=BMIN(M(i));

end

if i<=size(N,2)

V1(N(i))=BMIN(N(i));

V2(N(i))=BMAX(N(i));

end

end

for i=1:ma %按行循環求各方案的貼近度

C1=B(i,:)-V1;

S1(i)=norm(C1); %S1,S2分別為離正理想點和負理想點的距離,用二階範數

可求

C2=B(i,:)-V2;

S2(i)=norm(C2);

T(i)=S2(i)/(S1(i)+S2(i)); %T為貼近度

end

A

B

V1

V2

S1

S2

T

  • 上一篇:割草這個遊戲怎麽玩?
  • 下一篇:前端覆蓋率是什麽意思
  • copyright 2024編程學習大全網