перешкала

Диапазон шкалы элементов массива

Синтаксис

B = rescale(A)
B = rescale(A,l,u)
B = rescale(___,Name,Value)

Описание

пример

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 масштабируется по измерению входного массива, который соответствует форме значений параметров 'InputMax' и 'InputMin'.

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 | логический

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

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

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

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

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

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

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

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

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

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

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Алгоритмы

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

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

масштабировать элементы массива A.

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

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

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

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

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

Смотрите также

| |

Введенный в R2017b