2013-03-30 2 views
1

У меня есть диапазон значений как [12,540 108 201,120 17] в массиве.преобразовать определенное значение в значение между [0 1] в MATLAB

Я собираюсь преобразовать эти значения в диапазоне [0 1] в MATLAB.

Есть ли какая-либо функция в MATLAB?

+2

Отдел недоступен в вашей версии MATLAB? I., деление на максимальный элемент или максимальный ожидаемый элемент? – 2013-03-30 21:58:22

ответ

3

Проверить mapminmax функция из Neural Network Toolbox.

С помощью этой функции вы можете карту вам данные в [YMIN YMAX] интервал:

[Y,PS] = mapminmax(X,YMIN,YMAX) 

Она возвращает параметры отображения позволяет использовать один и то же отображение с новыми данными:

Y = mapminmax('apply',X,PS) 

или Возвратить для возвращения ваших данных в исходное пространство:

X = mapminmax('reverse',Y,PS) 

Но если вам не нужно применять те же отображение дважды или вернуть его, то это проще всего разделить ваши данные по максимальному значению:

Y = (X - min(X))/(max(X) - min(X)) 
+0

Это прекрасно. – BlueBit

1

Предполагая, что все значения являются положительными (как в вашем примере), и отношения между переменными в исходном массиве и [0 1] массива линейна:

x = [12,540 108 201,120 17]; 
y = x/max(x); 
-2
[Y,PS] = mapminmax(X,0,1) 

Определить переменную в качестве x, который может быть матрицы и использовать выше комментарий в вашем коде.

Смежные вопросы