MATLAB Answers

0

Normalization of an array of double

Asked by Guido Pastore on 3 Mar 2019
Latest activity Edited by Stephan
on 3 Mar 2019
How do I normalize an array of double from 0 to 1 ??

  0 Comments

Sign in to comment.

Tags

2 Answers

Answer by Stephan
on 3 Mar 2019
Edited by Stephan
on 3 Mar 2019
 Accepted Answer

Hi,
in R2018b use:
A = A ./ max(A,[],'all')
If you need performance use the good old classic way (see comment on the other answer):
A = A ./ max(A(:))
Best regards
Stephan

  1 Comment

max(A,[],'all') % since 2018b
max(A(:)) % prior to 2018b

Sign in to comment.


Answer by Sheng Chen on 3 Mar 2019

Try this
v = [1.3, 5.6, 2.2, 1.0, 3.32];
N = normalize(v,'range');
'range' means scale range of data to [0,1].
Also, please refer to Normalize data

  1 Comment

Stephan
on 3 Mar 2019
For bigger data sets i would prefer the classic way before 2018b changes came:
A = randi(100,10,10,10);
res_1a = @(A) A./max(A,[],'all');
res_1b = @(A) A./max(A(:));
res_2 = @(A) normalize(A,'range');
tic
r1a = res_1a(A);
toc
tic
r1b = res_1b(A);
toc
tic
r2 = res_2(A);
toc
results in:
Elapsed time is 0.000805 seconds.
Elapsed time is 0.000427 seconds.
Elapsed time is 0.057486 seconds.

Sign in to comment.