Normalization of an array of double

11 visualizzazioni (ultimi 30 giorni)
Guido Pastore
Guido Pastore il 3 Mar 2019
Modificato: Stephan il 3 Mar 2019
How do I normalize an array of double from 0 to 1 ??

Risposta accettata

Stephan
Stephan il 3 Mar 2019
Modificato: Stephan il 3 Mar 2019
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 Commento
madhan ravi
madhan ravi il 3 Mar 2019
max(A,[],'all') % since 2018b
max(A(:)) % prior to 2018b

Accedi per commentare.

Più risposte (1)

Sheng Chen
Sheng Chen il 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 Commento
Stephan
Stephan il 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.

Accedi per commentare.

Categorie

Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by