rescale

Масштабная область значений элементов массива

Описание

пример

B = rescale(A) масштабирует записи массива до интервала [0,1]. Массив выхода B - тот же размер, что и A.

пример

B = rescale(A,l,u) масштабирует записи массива до интервала [l, u].

пример

B = rescale(___,Name,Value) задает дополнительные параметры для масштабирования массива для любого из предыдущих синтаксисов. Для примера, rescale(A,'InputMin',5) устанавливает все элементы в A которые меньше 5 равны 5 перед масштабированием в области значений [0,1].

Примеры

свернуть все

Масштабируйте значения вектора до интервала [0,1].

A = 1:5;
B = rescale(A)
B = 1×5

         0    0.2500    0.5000    0.7500    1.0000

Масштабируйте элементы массива вектора до интервала [-1,1].

A = 1:5;
B = rescale(A,-1,1)
B = 1×5

   -1.0000   -0.5000         0    0.5000    1.0000

Масштабируйте каждый столбец матрицы до интервала [0,1], задавая минимум и максимум каждого столбца. rescale Шкалы вдоль размерности массива входа, которая соответствует форме 'InputMin' и 'InputMax' значений параметров.

A = magic(3)
A = 3×3

     8     1     6
     3     5     7
     4     9     2

colmin = min(A)
colmin = 1×3

     3     1     2

colmax = max(A)
colmax = 1×3

     8     9     7

Bcol = rescale(A,'InputMin',colmin,'InputMax',colmax)
Bcol = 3×3

    1.0000         0    0.8000
         0    0.5000    1.0000
    0.2000    1.0000         0

Масштабирование каждой строки A в интервал [0,1].

rowmin = min(A,[],2)
rowmin = 3×1

     1
     3
     2

rowmax = max(A,[],2)
rowmax = 3×1

     8
     7
     9

Brow = rescale(A,'InputMin',rowmin,'InputMax',rowmax)
Brow = 3×3

    1.0000         0    0.7143
         0    0.5000    1.0000
    0.2857    1.0000         0

Входные параметры

свернуть все

Входной массив, заданный как скалярный, векторный, матричный или многомерный массив.

  • Если A имеет тип single, тогда выход также имеет тип single. В противном случае выход имеет тип double.

  • Если A является скаляром, тогда rescale возвращает нижнюю границу интервала (0 по умолчанию) или NaN (когда выходная область значений содержит Inf).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Нижняя граница, заданная как скалярный, векторный, матричный или многомерный массив. l должен иметь размер, совместимый с массивом входа. Для примера, если A является M -by- N матрицей, затем rescale действует вдоль размерности, диктуемой формой l:

  • Если l является скаляром, тогда rescale использует его как нижнюю границу для всех элементов A.

  • Если l является вектором-строкой N 1 байт, затем rescale использует каждый элемент в качестве нижней границы для соответствующего столбца A.

  • Если l является вектором M -by-1, затем rescale использует каждый элемент как нижнюю границу для соответствующей строки A.

Для получения дополнительной информации о совместимых размерах массивов см. «Совместимые размеры массивов для основных операций».

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Верхняя граница, заданная как скалярный, векторный, матричный или многомерный массив. u должен иметь размер, совместимый с массивом входа. Для примера, если A является M -by- N матрицей, затем rescale действует вдоль размерности, диктуемой формой u:

  • Если u является скаляром, тогда rescale использует его как верхнюю границу для всех элементов A.

  • Если u является вектором-строкой N 1 байт, затем rescale использует каждый элемент в качестве верхней границы для соответствующего столбца A.

  • Если u является вектором M -by-1, затем rescale использует каждый элемент в качестве верхней границы для соответствующей строки A.

Для получения дополнительной информации о совместимых размерах массивов см. «Совместимые размеры массивов для основных операций».

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: B = rescale(A,'InputMin',5,'InputMax',10)

Минимум входа области значений, заданный как скалярный, векторный, матричный или многомерный массив. Значение по умолчанию для массива входа A является min(A(:)). Установка входа области значений либо расширяет, либо сжимает область значений входных данных. Для образца, rescale устанавливает все элементы, которые меньше заданного входного минимума, в 'InputMin' значение перед масштабированием.

The 'InputMin' значение должно иметь размер, совместимый с массивом входа. Для примера, если A является M -by- N матрицей, затем rescale действует вдоль размерности, диктуемой формой входа минимума:

  • Если вход минимум является скаляром, то rescale использует это минимальное значение для всех элементов A.

  • Если входной минимум является вектором-строкой N 1 байт, то rescale использует каждый элемент как минимум для соответствующего столбца A.

  • Если входной минимум является вектором-столбцом M-на-1, то rescale использует каждый элемент как минимум для соответствующей строки A.

Для получения дополнительной информации о совместимых размерах массивов см. «Совместимые размеры массивов для основных операций».

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Максимум входа областей значений, заданных как скалярный, векторный, матричный или многомерный массив. Значение по умолчанию для массива входа A является max(A(:)). Установка входа области значений либо расширяет, либо сжимает область значений входных данных. Для образца, rescale устанавливает все элементы, которые больше заданного входного максимума, в 'InputMax' значение перед масштабированием.

The 'InputMax' значение должно иметь размер, совместимый с массивом входа. Для примера, если A является M -by- N матрицей, затем rescale действует вдоль размерности, диктуемой формой входа максимума:

  • Если входной максимум является скаляром, то rescale использует это максимальное значение для всех элементов A.

  • Если входной максимум является вектором-строкой N 1 байт, то rescale использует каждый элемент как максимум для соответствующего столбца A.

  • Если входной максимум является вектором-столбцом M-на-1, то rescale использует каждый элемент как максимум для соответствующей строки A.

Для получения дополнительной информации о совместимых размерах массивов см. «Совместимые размеры массивов для основных операций».

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Алгоритмы

B = rescale(A,l,u,'InputMin',inmin,'InputMax',inmax) использует формулу

l + [(A-inmin)./(inmax-inmin)].*(u-l)

масштабирование элементов массива A когда значения A находятся в границах inmin и inmax.

  • Если l и u не заданы, тогда rescale использует значения по умолчанию 0 и 1, соответственно.

  • Если на 'InputMin' Пара "имя-значение" не задана, тогда rescale устанавливает его значение по умолчанию min(A(:)).

  • Если на 'InputMax' Пара "имя-значение" не задана, тогда rescale устанавливает его значение по умолчанию max(A(:)).

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

| | |

Введенный в R2017b