matlab normalization

Normalización en rango variable[x, y] en Matlab



normalization (3)

Quiero crear un programa matlab básico que normalice una matriz determinada de enteros en el rango dado.

  • Las entradas son una matriz [a1, a2, a3, a4, a5, a6, a7 ...], y el rango [x, y]
  • La salida es una matriz normalizada.

Pero en todas partes, veo la normalización en el rango de [0,1] o [-1,1]. No se puede encontrar la normalización de rango variable. Le agradeceré que escriba el código matlab o la fórmula para rango variable.

Gracias por las ideas.


A partir de R2017b, MATLAB tiene esta función llamada rescale que hace exactamente esto.
es decir, si desea volver a escalar la array en el intervalo [x, y] entonces:

normalized_array = rescale(array, x, y);

Si no se especifican x e y , la array se normaliza al intervalo [0,1] .


MATLAB tiene una función especial para la normalización, que se incluye en la caja de herramientas de la red neuronal artificial, que se utiliza para los valores de entrada de normalización.

mapminmax

mapminmax procesa matrices normalizando los valores mínimo y máximo de cada fila a [YMIN, YMAX].

mapstd

mapstd procesa matrices transformando la media y la desviación estándar de cada fila en ymean y ystd.

más información


Si desea normalizar a [x, y] , primero normalice a [0, 1] través de:

range = max(a) - min(a); a = (a - min(a)) / range;

Luego escala a [x,y] través de:

range2 = y - x; a = (a * range2) + x;

Poniendolo todo junto:

function normalized = normalize_var(array, x, y) % Normalize to [0, 1]: m = min(array); range = max(array) - m; array = (array - m) / range; % Then scale to [x,y]: range2 = y - x; normalized = (array*range2) + x;