У меня есть диапазон значений как [12,540 108 201,120 17] в массиве.преобразовать определенное значение в значение между [0 1] в MATLAB
Я собираюсь преобразовать эти значения в диапазоне [0 1] в MATLAB.
Есть ли какая-либо функция в MATLAB?
У меня есть диапазон значений как [12,540 108 201,120 17] в массиве.преобразовать определенное значение в значение между [0 1] в MATLAB
Я собираюсь преобразовать эти значения в диапазоне [0 1] в MATLAB.
Есть ли какая-либо функция в MATLAB?
Проверить 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))
Это прекрасно. – BlueBit
Предполагая, что все значения являются положительными (как в вашем примере), и отношения между переменными в исходном массиве и [0 1] массива линейна:
x = [12,540 108 201,120 17];
y = x/max(x);
[Y,PS] = mapminmax(X,0,1)
Определить переменную в качестве x
, который может быть матрицы и использовать выше комментарий в вашем коде.
Отдел недоступен в вашей версии MATLAB? I., деление на максимальный элемент или максимальный ожидаемый элемент? – 2013-03-30 21:58:22