matlab将矩阵数据重新缩放为-1到1

EdC*_*ica -3 matlab normalize matrix

可能重复:
MATLAB:如何将向量归一化/非规范化到范围[-1; 1]

嗨,刚开始使用Matlab,我想知道如何在矩阵中重新缩放数据.我有一个N行×M列的矩阵,并希望将列中的数据重新缩放到介于-1和1之间.

每列包含从0到10,000的比例变化到0到1之间的值,我想要归一化到-1和1之间的原因,因为这些值将在神经网络中用作变换的输入值基于正弦的功能.

abc*_*bcd 5

以前的答案都不正确.这是你需要做的:

[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);
Run Code Online (Sandbox Code Playgroud)

矩阵的normalizedA值在-1和之间1.

例:

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
Run Code Online (Sandbox Code Playgroud)