use rescale with matrix

7 visualizzazioni (ultimi 30 giorni)
shamal
shamal il 9 Mag 2025
Commentato: shamal il 10 Mag 2025
hi,i want to normalize matrix using interval -1 and 1
load('matlab_E');
B=rescale(E,1,-1);
Error using rescale>preprocessInputs (line 90)
Lower bound argument must be less than or equal to the upper bound argument.

Error in rescale (line 36)
[A, a, b, inputMin, inputMax] = preprocessInputs(A, varargin{:});

Risposta accettata

Steven Lord
Steven Lord il 9 Mag 2025
From the rescale documentation page: "R = rescale(A,l,u) scales all elements in A to the interval [l u]."
The second input argument must be less than or equal to the third input argument. In your call, that is not satisfied. Swap the order of the 1 and -1.
  8 Commenti
Voss
Voss il 10 Mag 2025
@Luca Re: Given:
have = [0 0.2 0.4 0.6 0.8 1];
min_to_get = 10;
max_to_get = 15;
Here's the math that does what you want:
min_have = min(have);
max_have = max(have);
to_get = (have-min_have)./(max_have-min_have).*(max_to_get-min_to_get)+min_to_get
to_get = 1×6
10 11 12 13 14 15
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
Or, here's the MATLAB function call to do it:
to_get = rescale(have,min_to_get,max_to_get)
to_get = 1×6
10 11 12 13 14 15
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
shamal
shamal il 10 Mag 2025

Thank you

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Time Series in Help Center e File Exchange

Prodotti


Release

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by