# Is there any way to normalize any matrix values to be between (-1) and (1)?

18 views (last 30 days)
Sarah A on 12 Jan 2019
Commented: Walter Roberson on 13 Jan 2019
Hello,
Is there any way to normalize any matrix values to be exactly between (-1) and (1)? I attached the matrix.
regards,

Image Analyst on 12 Jan 2019
You can use mat2gray(), which normalizes data from 0-1 then just scale and subtract 1 to get into the range -1 to +1:
M = 2*mat2gray(M)-1;
A nice single-line solution.

Show 1 older comment
Walter Roberson on 13 Jan 2019
M = (2*mat2gray(M)-1) * (1-eps);
the 1-eps contracts from [-1 1] to [-(1-eps) +(1-eps)] which is (-1, 1) to within double precision.
Sarah A on 13 Jan 2019
No it is still between -1.0000 and 1.0000, is there any way to fix that ?
Walter Roberson on 13 Jan 2019
They would display as -1.0000 and 1.0000 especially with short format in effect, but if you take 1-max(M(:)) and min(M(:))+1 then you will see non-zero residues.

madhan ravi on 12 Jan 2019
Edited: madhan ravi on 12 Jan 2019
a=-1;
b=1;
N=100; % number of points
A=(b-a).*rand(N,1)+a; % creates numbers inbetween -1 and 1

#### 1 Comment

Sarah A on 12 Jan 2019
Thank you for your answer. I tried all of them but it doesnt work.

Steven Lord on 12 Jan 2019
Use the normalize function with the 'range' method if you're using release R2018a or later.