rescale
数组元素的缩放范围
说明
示例
缩放到单位区间
将向量的元素缩放到单位区间 [0, 1],这是 rescale
的默认区间。缩放保持分布的形状。
A = 1:5; R = rescale(A)
R = 1×5
0 0.2500 0.5000 0.7500 1.0000
指定区间
通过指定下界和上界,将向量的元素缩放到区间 [–1, 1]。
A = 1:5; R = rescale(A,-1,1)
R = 1×5
-1.0000 -0.5000 0 0.5000 1.0000
指定矩阵列的区间和范围
将矩阵的每列独立缩放到单位区间 [0, 1]。将输入范围的最小值指定为包含每个矩阵列中最小元素的行向量。将输入范围的最大值指定为包含每个矩阵列中最大元素的行向量。
A = [0.4 -4; 0.5 -5; 0.9 9; 0.2 1]
A = 4×2
0.4000 -4.0000
0.5000 -5.0000
0.9000 9.0000
0.2000 1.0000
colmin = min(A)
colmin = 1×2
0.2000 -5.0000
colmax = max(A)
colmax = 1×2
0.9000 9.0000
R = rescale(A,"InputMin",colmin,"InputMax",colmax)
R = 4×2
0.2857 0.0714
0.4286 0.0000
1.0000 1.0000
0 0.4286
将第二列缩放到区间 [–1, 1]。除了 InputMin
和 InputMax
名称-值参量之外,还指定重新缩放数据的上界和下界。
Rcol = rescale(A,[0 -1],1,"InputMin",colmin,"InputMax",colmax)
Rcol = 4×2
0.2857 -0.8571
0.4286 -1.0000
1.0000 1.0000
0 -0.1429
指定范围
将输入向量的元素裁剪到范围 [1, 5],并将向量重新缩放到默认区间 [0, 1]。裁剪将所有元素值限制在指定的输入范围内。
A = [-30 1 2 3 4 5 70]; R = rescale(A,"InputMin",1,"InputMax",5)
R = 1×7
0 0 0.2500 0.5000 0.7500 1.0000 1.0000
输入参数
A
— 输入数组
向量 | 矩阵 | 多维数组
输入数组,指定为向量、矩阵或多维数组。
如果
A
的类型为single
,则输出的类型也是single
。否则,输出的类型为double
。如果
A
是常量,则rescale
返回区间的下界(默认为 0)或NaN
(当指定的区间包含Inf
时)。
l
— 下界
0 (默认) | 标量 | 向量 | 矩阵 | 多维数组
重新缩放数据的下界,指定为标量、向量、矩阵或多维数组。l
必须小于上界,并且大小与输入数组兼容。有关详细信息,请参阅基本运算的兼容数组大小。
要对 A
的所有元素使用相同的下界,请将 l
指定为标量。要对 A
中的每列或每行使用不同下界,请分别将 l
指定为行向量或列向量。
如果为每列或每行设置不同区间界限,在计算每列或每行的缩放值时,rescale
仍会考虑输入数组中的所有值。要独立地重新缩放每列或每行,除了将 l
和 u
指定为向量之外,还可以通过将 InputMin
和 InputMax
名称-值参量指定为向量来设置输入数组沿每列或每行的范围。
u
— 上界
1 (默认) | 标量 | 向量 | 矩阵 | 多维数组
重新缩放数据的上界,指定为标量、向量、矩阵或多维数组。u
必须大于下界,并且大小与输入数组兼容。有关详细信息,请参阅基本运算的兼容数组大小。
要对 A
的所有元素使用相同的上界,请将 u
指定为标量。要对 A
中的每列或每行使用不同上界,请分别将 u
指定为行向量或列向量。
如果为每列或每行设置不同区间界限,在计算每列或每行的缩放值时,rescale
仍会考虑输入数组中的所有值。要独立地重新缩放每列或每行,除了将 l
和 u
指定为向量之外,还可以通过将 InputMin
和 InputMax
名称-值参量指定为向量来设置输入数组沿每列或每行的范围。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
示例: R = rescale(A,InputMin=5,InputMax=10)
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: R = rescale(A,"InputMin",5,"InputMax",10)
InputMin
— 输入范围的最小值
标量 | 向量 | 矩阵 | 多维数组
输入范围的最小值,指定为标量、向量、矩阵或多维数组。InputMin
的默认值为 min(A(:))
。InputMin
的大小必须与输入数组兼容。有关详细信息,请参阅基本运算的兼容数组大小。
指定 InputMin
来裁剪或扩展输入数组的范围。rescale
使用 InputMin
作为输入范围的最小值,而不是 A
的最小值。在缩放之前,将小于 InputMin
的 A
的元素设置为 InputMin
的对应值。
要对 A
的所有元素使用相同的最小输入范围,请将 InputMin
指定为标量。要独立缩放 A
的列,请将 InputMin
指定为行向量。要独立缩放 A
的行,请将 InputMin
指定为列向量。
示例: R = rescale(A,"InputMin",5)
示例: R = rescale(A,"InputMin",min(A),"InputMax",max(A))
InputMax
— 输入范围的最大值
标量 | 向量 | 矩阵 | 多维数组
输入范围的最大值,指定为标量、向量、矩阵或多维数组。InputMax
的默认值为 max(A(:))
。InputMax
的大小必须与输入数组兼容。有关详细信息,请参阅基本运算的兼容数组大小。
指定 InputMax
来裁剪或扩展输入数组的范围。rescale
使用 InputMax
作为输入范围的最大值,而不是 A
的最大值。在缩放之前,将大于 InputMax
的 A
的元素设置为 InputMax
的对应值。
要对 A
的所有元素使用相同的输入范围最大值,请将 InputMax
指定为标量。要独立缩放 A
的列,请将 InputMax
指定为行向量。要独立缩放 A
的行,请将 InputMax
指定为列向量。
示例: R = rescale(A,"InputMax",10)
示例: R = rescale(A,"InputMin",min(A),"InputMax",max(A))
算法
当 A
的值在 InputMin
和 InputMax
定义的范围内时,rescale
使用公式 缩放输入数组 A
的元素。
如果未指定
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
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (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)