极差归一化

极差归一化
目的:①消除计量单位差异,将评价指标的绝对值,转化为相对值。
②评价指标分为:正指标、逆指标和适度性指标。正指标是指标值越离,评价对象越优;逆指标是指标值越低,评价对象越差;而适度性指标是指标数越接近某一值,评价对象越优。
对于正指标,计算公式如下:
极差归一化_第1张图片
对于逆指标,计算公式如下:
极差归一化_第2张图片
对于适度指标,计算公式如下(其中Xi*为该指标最优值):
极差归一化_第3张图片
matlab实现:

function [ X_out ] = rscore( X_in,N,x )
%RSCORE 此函数用来实现极差归一化
%函数实现按列归一化 
%X_out:归一化后的矩阵
%X_in:矩阵,需要归一化的矩阵
%N: 正整数,N=1,正指标归一化,N = 2,逆指标归一化,N = 3,适度指标归一化
%x:行向量,N = 3时需要给出x,x为每一列数据的最优指标
n0 = size(X_in);
m = zeros(n0(1),1);
maxx = max(X_in);
minn = min(X_in);
m = maxx-minn;
X_out = zeros(n0);
if N == 1  
    for j = 1:n0(2)
        for i = 1:n0(1)
            X_out(i,j) = (X_in(i,j) - minn(j))/m(j);
        end
    end
elseif N == 2
    for j = 1:n0(2)
        for i = 1:n0(1)
            X_out(i,j) = (maxx(j)-X_in(i,j))/m(j);
        end
    end
elseif N == 3
    for k = 1:n0(2)
        m(k) = max(abs(X_in(:,k)-x(k)));
    end
    for j = 1:n0(2)
        for i = 1:n0(1)
            X_out(i,j) = 1-abs(X_in(i,j)-x(j))/m(j);
        end
    end
end
end

你可能感兴趣的:(matlab,matlab)