Matlab工具箱中没有提供进行数据处理的极差归一化变换的函数及工具,先发贴分享数据处理极差归一化变换实现的Matlab的源代码rescore函数。
以下是程序实现的例子:
数据的极差归一化变换
%--------------------------------------------------------------------------
% 调用rand函数产生一个10行,4列的随机矩阵,每列服从不同的均匀分布
x = [rand(10,1), 5*rand(10,1), 10*rand(10,1), 50*rand(10,1)]
% 调用rscore函数对x按列进行极差规格化变换,
% 返回变换后矩阵R,以及矩阵x各列的最小值构成的向量xmin,各列的极差构成的向量xrange
[R,xmin,xrange] = rscore(x)
x =
0.1413 4.5435 5.5888 32.4003
0.0793 3.0182 2.2585 26.9888
0.8761 1.8262 1.0452 11.6127
0.4204 2.9930 0.0998 36.9916
0.4877 3.3424 0.5915 44.4496
0.4603 4.4728 3.2265 42.9904
0.5157 0.4367 7.7948 29.8530
0.2720 2.6951 3.3548 32.7376
0.2316 2.1422 6.1957 45.7507
0.8995 3.0858 9.9289 21.6592
R =
0.0756 1.0000 0.5584 0.6089
0 0.6286 0.2196 0.4504
0.9715 0.3383 0.0962 0
0.4159 0.6224 0 0.7434
0.4979 0.7075 0.0500 0.9619
0.4645 0.9828 0.3181 0.9191
0.5320 0 0.7829 0.5343
0.2349 0.5499 0.3312 0.6188
0.1857 0.4153 0.6202 1.0000
1.0000 0.6450 1.0000 0.2943
xmin =
0.0793 0.4367 0.0998 11.6127
xrange =
0.8202 4.1068 9.8291 34.1380
>>