use rescale with matrix

2 visualizaciones (últimos 30 días)
shamal
shamal el 9 de Mayo de 2025
Comentada: shamal el 10 de Mayo de 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{:});

Respuesta aceptada

Steven Lord
Steven Lord el 9 de Mayo de 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 comentarios
Voss
Voss el 10 de Mayo de 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 el 10 de Mayo de 2025

Thank you

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Time Series en Help Center y File Exchange.

Productos


Versión

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by