如何将向量归一化/非规范化到范围[-1; 1]

nev*_*ind 16 matlab normalization denormalization

如何将矢量标准化为范围[-1;1]

我想使用函数norm,因为它会更快.

还让我知道如何在归一化后对该向量进行规范化

Jon*_*nas 26

norm 归一化矢量,使其平方和为1.

如果要对向量进行标准化以使其所有元素都在0和1之间,则需要使用最小值和最大值,然后可以使用该值再次进行非规范化.

%# generate some vector
vec = randn(10,1);

%# get max and min
maxVec = max(vec);
minVec = min(vec);

%# normalize to -1...1
vecN = ((vec-minVec)./(maxVec-minVec) - 0.5 ) *2;

%# to "de-normalize", apply the calculations in reverse
vecD = (vecN./2+0.5) * (maxVec-minVec) + minVec
Run Code Online (Sandbox Code Playgroud)