rescale
数组元素的缩放范围
说明
示例
缩放到单位区间
缩放到指定范围
缩放矩阵列和行
通过指定每列的最小值和最大值,将矩阵的每一列缩放到区间 [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
— 输入数组
标量 | 向量 | 矩阵 | 多维数组
输入数组,指定为标量、向量、矩阵或多维数组。
如果
A
的类型为single
,则输出的类型也是single
。否则,输出的类型为double
。如果
A
是标量,则rescale
返回区间的下界(默认为 0)或NaN
(当输出范围包含Inf
时)。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
l
— 下界
0 (默认) | 标量 | 向量 | 矩阵 | 多维数组
下界,指定为标量、向量、矩阵或多维数组。l
的大小必须与输入数组兼容。例如,如果 A
是 M×N 矩阵,则 rescale
沿 l
的形状指示的维度进行运算:
如果
l
是标量,则rescale
使用它作为A
的所有元素的下界。如果
l
是 1×N 行向量,则rescale
使用每个元素作为A
的对应列的下界。如果
l
是 M×1 列向量,则rescale
使用每个元素作为A
的对应行的下界。
有关兼容的数组大小的详细信息,请参阅基本运算的兼容数组大小。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
u
— 上界
1 (默认) | 标量 | 向量 | 矩阵 | 多维数组
上界,指定为标量、向量、矩阵或多维数组。u
的大小必须与输入数组兼容。例如,如果 A
是 M×N 矩阵,则 rescale
沿 u
的形状指示的维度进行运算:
如果
u
是标量,则rescale
使用它作为A
的所有元素的上界。如果
u
是 1×N 行向量,则rescale
使用每个元素作为A
的对应列的上界。如果
u
是 M×1 列向量,则rescale
使用每个元素作为A
的对应行的上界。
有关兼容的数组大小的详细信息,请参阅基本运算的兼容数组大小。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: B = rescale(A,'InputMin',5,'InputMax',10)
InputMin
— 输入范围的最小值
标量 | 向量 | 矩阵 | 多维数组
输入范围的最小值,指定为标量、向量、矩阵或多维数组。输入数组 A
的默认值为 min(A(:))
。指定输入范围将扩大或缩小输入数据的范围。例如,rescale
在缩放之前将所有小于指定输入最小值的元素设置为 'InputMin'
值。
'InputMin'
值的大小必须与输入数组兼容。例如,如果 A
是 M×N 矩阵,则 rescale
沿输入最小值的形状指示的维度进行运算:
如果输入最小值是标量,则
rescale
使用它作为A
的所有元素的最小值。如果输入最小值是 1×N 行向量,则
rescale
使用每个元素作为A
的对应列的最小值。如果输入最小值是 M×1 列向量,则
rescale
使用每个元素作为A
的对应行的最小值。
有关兼容的数组大小的详细信息,请参阅基本运算的兼容数组大小。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
InputMax
— 输入范围的最大值
标量 | 向量 | 矩阵 | 多维数组
输入范围的最大值,指定为标量、向量、矩阵或多维数组。输入数组 A
的默认值为 max(A(:))
。指定输入范围将扩大或缩小输入数据的范围。例如,rescale
在缩放之前将所有大于指定输入最大值的元素设置为 'InputMax'
值。
'InputMax'
值的大小必须与输入数组兼容。例如,如果 A
是 M×N 矩阵,则 rescale
沿输入最大值的形状指示的维度进行运算:
如果输入最大值是标量,则
rescale
使用它作为A
的所有元素的最大值。如果输入最大值是 1×N 行向量,则
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(:))
。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅Run MATLAB Functions in Thread-Based Environment。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2017b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
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)