可能的重复:
MATLAB:如何将向量标准化/非标准化到范围 [-1;1] https://stackoverflow.com/questions/4684622/matlab-how-to-normalize-denormalize-a-vector-to-range-11
你好,刚开始使用 Matlab,我想知道如何重新调整矩阵中的数据。
我有一个 N 行 M 列的矩阵,想要将列中的数据重新调整为 -1 到 1 之间。
每列包含的值范围从 0 - 10,000 到 0 到 1 之间的值,这就是我想要标准化到 -1 到 1 之间的原因,因为这些值将在神经网络中用作转换的输入值基于正弦的函数。
前面的答案都不正确。这是你需要做的:
[rows,~]=size(A);%# A is your matrix
colMax=max(abs(A),[],1);%# take max absolute value to account for negative numbers
normalizedA=A./repmat(colMax,rows,1);
矩阵normalizedA
将具有介于-1
and 1
.
Example:
A=randn(4)
A =
-1.0689 0.3252 -0.1022 -0.8649
-0.8095 -0.7549 -0.2414 -0.0301
-2.9443 1.3703 0.3192 -0.1649
1.4384 -1.7115 0.3129 0.6277
normalizedA =
-0.3630 0.1900 -0.3203 -1.0000
-0.2749 -0.4411 -0.7564 -0.0347
-1.0000 0.8006 1.0000 -0.1906
0.4885 -1.0000 0.9801 0.7258
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)