rescale
Scale range of array elements
Description
scales the entries of an array to the interval [0,1]. The output arrayB
= rescale(A
)B
is the same size asA
.
specifies additional parameters for scaling an array for either of the previous syntaxes. For example,B
= rescale(___,Name,Value
)rescale(A,'InputMin',5)
sets all elements inA
that are less than 5 equal to 5 before scaling to the range [0,1].
Examples
Scale to Unit Interval
量表的条目一个向量to the interval [0,1].
A = 1:5; B = rescale(A)
B =1×50 0.2500 0.5000 0.7500 1.0000
Scale to Specified Range
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 Matrix Columns and Rows
Scale each column of a matrix to the interval [0,1] by specifying the minimum and maximum of each column.rescale
scales 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 ofA
to 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
A
—Input array
scalar|vector|matrix|multidimensional array
Input array, specified as a scalar, vector, matrix, or multidimensional array.
If
A
has typesingle
, then the output also has typesingle
. Otherwise, the output has typedouble
.If
A
is a scalar, thenrescale
返回由defa区间的下限(0ult) orNaN
(when the output range containsInf
).
Data Types:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|logical
l
—Lower bound
0(default) |scalar|vector|matrix|multidimensional array
Lower bound, specified as a scalar, vector, matrix, or multidimensional array.l
must have a size that is compatible with the input array. For example, ifA
is anM-by-Nmatrix, thenrescale
operates along the dimension dictated by the shape ofl
:
If
l
is a scalar, thenrescale
uses it as the lower bound for all elements ofA
.If
l
is a 1-by-Nrow vector, thenrescale
uses each element as the lower bound for the corresponding column ofA
.If
l
is anM-by-1 column vector, thenrescale
uses 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
u
—Upper bound
1(default) |scalar|vector|matrix|multidimensional array
Upper bound, specified as a scalar, vector, matrix, or multidimensional array.u
must have a size that is compatible with the input array. For example, ifA
is anM-by-Nmatrix, thenrescale
operates along the dimension dictated by the shape ofu
:
If
u
is a scalar, thenrescale
uses it as the upper bound for all elements ofA
.If
u
is a 1-by-Nrow vector, thenrescale
uses each element as the upper bound for the corresponding column ofA
.If
u
is anM-by-1 column vector, thenrescale
uses 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
, whereName
is the argument name andValue
is 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 encloseName
in quotes.
Example:B = rescale(A,'InputMin',5,'InputMax',10)
InputMin
—Minimum of input range
scalar|vector|matrix|multidimensional array
Minimum of input range, specified as a scalar, vector, matrix, or multidimensional array. The default value for an input arrayA
ismin(A(:))
. Specifying an input range either expands or shrinks the range of the input data. For instance,rescale
sets 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, ifA
is anM-by-Nmatrix, thenrescale
operates along the dimension dictated by the shape of the input minimum:
If the input minimum is a scalar, then
rescale
uses that minimum value for all elements ofA
.If the input minimum is a 1-by-Nrow vector, then
rescale
uses each element as the minimum for the corresponding column ofA
.If the input minimum is anM-by-1 column vector, then
rescale
uses 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
InputMax
—Maximum of input range
scalar|vector|matrix|multidimensional array
Maximum of input range, specified as a scalar, vector, matrix, or multidimensional array. The default value for an input arrayA
ismax(A(:))
. Specifying an input range either expands or shrinks the range of the input data. For instance,rescale
sets 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, ifA
is anM-by-Nmatrix, thenrescale
operates along the dimension dictated by the shape of the input maximum:
If the input maximum is a scalar, then
rescale
uses that maximum value for all elements ofA
.If the input maximum is a 1-by-Nrow vector, then
rescale
uses each element as the maximum for the corresponding column ofA
.If the input maximum is anM-by-1 column vector, then
rescale
uses 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 arrayA
when the values ofA
are within the bounds ofinmin
andinmax
.
If
l
andu
are not specified, thenrescale
uses the default values 0 and 1, respectively.If the
'InputMin'
name-value pair is not specified, thenrescale
sets its value to the defaultmin(A(:))
.If the
'InputMax'
name-value pair is not specified, thenrescale
sets its value to the defaultmax(A(:))
.
Extended Capabilities
Tall Arrays
Calculate with arrays that have more rows than fit in memory.
Usage notes and limitations:
The inputs
l
andu
, and the value of the name-value pairs'InputMin'
and'InputMax'
, cannot have more than one row.
For more information, seeTall Arrays.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Thread-Based Environment
Run code in the background using MATLAB®backgroundPool
or accelerate code with Parallel Computing Toolbox™ThreadPool
.
This function fully supports thread-based environments. For more information, seeRun MATLAB Functions in Thread-Based Environment.
GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
This function fully supports GPU arrays. For more information, seeRun MATLAB Functions on a GPU(Parallel Computing Toolbox).
Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
This function fully supports distributed arrays. For more information, seeRun MATLAB Functions with Distributed Arrays(Parallel Computing Toolbox).
Version History
Introduced in R2017b
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(Español)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(Español)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- Sweden(English)
- Switzerland
- United Kingdom(English)