Main Content

rescale

Scale range of array elements

Description

example

B= rescale(A)scales the entries of an array to the interval [0,1]. The output arrayBis the same size asA.

example

B= rescale(A,l,u)scales the entries of an array to the interval [l,u].

example

B= rescale(___,Name,Value)specifies additional parameters for scaling an array for either of the previous syntaxes. For example,rescale(A,'InputMin',5)sets all elements inAthat are less than 5 equal to 5 before scaling to the range [0,1].

Examples

collapse all

量表的条目一个向量to the interval [0,1].

A = 1:5; B = rescale(A)
B =1×50 0.2500 0.5000 0.7500 1.0000

Scale the elements of a vector to the interval [-1,1].

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

Scale each column of a matrix to the interval [0,1] by specifying the minimum and maximum of each column.rescalescales along the dimension of the input array that corresponds with the shape of the'InputMin'and'InputMax'parameter values.

A = magic(3)
A =3×38 1 6 3 5 7 4 9 2
colmin = min(A)
colmin =1×33 1 2
colmax = max(A)
colmax =1×38 9 7
Bcol = rescale(A,'InputMin',colmin,'InputMax',colmax)
Bcol =3×31.0000 0 0.8000 0 0.5000 1.0000 0.2000 1.0000 0

Scale each row ofAto the interval [0,1].

rowmin = min(A,[],2)
rowmin =3×11 3 2
rowmax = max(A,[],2)
rowmax =3×18 7 9
Brow = rescale(A,'InputMin',rowmin,'InputMax',rowmax)
Brow =3×31.0000 0 0.7143 0 0.5000 1.0000 0.2857 1.0000 0

Input Arguments

collapse all

Input array, specified as a scalar, vector, matrix, or multidimensional array.

  • IfAhas typesingle, then the output also has typesingle. Otherwise, the output has typedouble.

  • IfAis a scalar, thenrescale返回由defa区间的下限(0ult) orNaN(when the output range containsInf).

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64|logical

Lower bound, specified as a scalar, vector, matrix, or multidimensional array.lmust have a size that is compatible with the input array. For example, ifAis anM-by-Nmatrix, thenrescaleoperates along the dimension dictated by the shape ofl:

  • Iflis a scalar, thenrescaleuses it as the lower bound for all elements ofA.

  • Iflis a 1-by-Nrow vector, thenrescaleuses each element as the lower bound for the corresponding column ofA.

  • Iflis anM-by-1 column vector, thenrescaleuses each element as the lower bound for the corresponding row ofA.

For more information on compatible array sizes, seeCompatible Array Sizes for Basic Operations.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

Upper bound, specified as a scalar, vector, matrix, or multidimensional array.umust have a size that is compatible with the input array. For example, ifAis anM-by-Nmatrix, thenrescaleoperates along the dimension dictated by the shape ofu:

  • Ifuis a scalar, thenrescaleuses it as the upper bound for all elements ofA.

  • Ifuis a 1-by-Nrow vector, thenrescaleuses each element as the upper bound for the corresponding column ofA.

  • Ifuis anM-by-1 column vector, thenrescaleuses each element as the upper bound for the corresponding row ofA.

For more information on compatible array sizes, seeCompatible Array Sizes for Basic Operations.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

Name-Value Arguments

Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN, whereNameis the argument name andValueis the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and encloseNamein quotes.

Example:B = rescale(A,'InputMin',5,'InputMax',10)

Minimum of input range, specified as a scalar, vector, matrix, or multidimensional array. The default value for an input arrayAismin(A(:)). Specifying an input range either expands or shrinks the range of the input data. For instance,rescalesets all elements that are less than the specified input minimum to the'InputMin'value before scaling.

The'InputMin'value must have a size that is compatible with the input array. For example, ifAis anM-by-Nmatrix, thenrescaleoperates along the dimension dictated by the shape of the input minimum:

  • If the input minimum is a scalar, thenrescaleuses that minimum value for all elements ofA.

  • If the input minimum is a 1-by-Nrow vector, thenrescaleuses each element as the minimum for the corresponding column ofA.

  • If the input minimum is anM-by-1 column vector, thenrescaleuses each element as the minimum for the corresponding row ofA.

For more information on compatible array sizes, seeCompatible Array Sizes for Basic Operations.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64|logical

Maximum of input range, specified as a scalar, vector, matrix, or multidimensional array. The default value for an input arrayAismax(A(:)). Specifying an input range either expands or shrinks the range of the input data. For instance,rescalesets all elements that are greater than the specified input maximum to the'InputMax'value before scaling.

The'InputMax'value must have a size that is compatible with the input array. For example, ifAis anM-by-Nmatrix, thenrescaleoperates along the dimension dictated by the shape of the input maximum:

  • If the input maximum is a scalar, thenrescaleuses that maximum value for all elements ofA.

  • If the input maximum is a 1-by-Nrow vector, thenrescaleuses each element as the maximum for the corresponding column ofA.

  • If the input maximum is anM-by-1 column vector, thenrescaleuses each element as the maximum for the corresponding row ofA.

For more information on compatible array sizes, seeCompatible Array Sizes for Basic Operations.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64|logical

Algorithms

B = rescale(A,l,u,'InputMin',inmin,'InputMax',inmax)uses the formula

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

to scale the elements of an arrayAwhen the values ofAare within the bounds ofinminandinmax.

  • Iflanduare not specified, thenrescaleuses the default values 0 and 1, respectively.

  • If the'InputMin'name-value pair is not specified, thenrescalesets its value to the defaultmin(A(:)).

  • If the'InputMax'name-value pair is not specified, thenrescalesets its value to the defaultmax(A(:)).

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2017b

See Also

Functions

Apps