function [ posit_x ] = Positivization ( x , type , i ) if type == 1 disp(['第'num2str ( i ) '列是极小型,正在正向化']) posit_x = Min2Max ( x ) ; disp(['第'num2str ( i ) '列正向化处理完成]) disp('~~~~~~~~~~~~~~~~~~~~~分界线~~~~~~~~~~~~~~~~~~~~~~~~') else if type == 2 dis ( ['第'num2str ( i ) '列是中间型']) best = input ('请输入最佳的那一个值:') ; posit_x = Mid2Max ( x , best ) ; disp(['第'num2str ( i ) '列正向化处理完成]) ; disp('~~~~~~~~~~~~~~~~~~~~~分界线~~~~~~~~~~~~~~~~~~~~~~~~') else if type == 3 dis ( ['第'num2str ( i ) '列是区间型']) a = input ('请输入区间的下界') ; b = input ('请输入区间的上界') ; posit_x = Inter2Max ( x , a , b ) ; disp(['第'num2str ( i ) '列正向化处理完成]) ; disp('~~~~~~~~~~~~~~~~~~~~~分界线~~~~~~~~~~~~~~~~~~~~~~~~') else disp ('没有这种类型的指标请检查Type向量中是否有除了1、2、3以外的其他值') end end
function [ posit_x ] = Inter2Max ( x , a , b ) ; M = max ([ a - min ( x ) , max ( x ) - b ] ) ; r_x = size ( x , 1 ) ; posit_x = zeros ( r_x , 1 ) ; for i = 1 : r_x if x(i) < a posit_x(i) = 1 - ( a - x(i) ) / M ; else if x(i) > b posit_x(i) = 1 - ( x(i) - b ) / M ; else posit_x(i) = 1 ; end end end