MATLAB中rescale函数用法
目录
语法
说明
示例
缩放到单位区间
缩放到指定范围
缩放矩阵列和行
rescale函数的功能是数组元素的缩放范围。
语法
R = rescale(X)
R = rescale(X,a,b)
R = rescale(___,Name,Value)
说明
R = rescale(X) 将 X 的条目缩放到区间 [0,1]。输出数组 R 的大小与 X 相同。
R = rescale(X,a,b) 将 X 的条目缩放到区间 [a,b]。
R = rescale(___,Name,Value) 使用一个或多个名称-值参数指定用于重新缩放的其他参数。例如,rescale(X,"InputMin",5) 将 X 中所有小于 5 的元素设置为等于 5,然后缩放到范围 [0,1]。
示例
缩放到单位区间
将向量的条目缩放到区间 [0,1]。
X = 1:5;
R = rescale(X)
R = 1×5
0 0.2500 0.5000 0.7500 1.0000
缩放到指定范围
将向量的元素缩放到区间 [-1,1]。
X = 1:5;
R = rescale(X,-1,1)
R = 1×5
-1.0000 -0.5000 0 0.5000 1.0000
缩放矩阵列和行
通过指定每列的最小值和最大值,将矩阵的每一列缩放到区间 [0,1]。rescale 沿输入数组中与 InputMin 和 InputMax 值的形状对应的维度进行缩放。
X = magic(3)
X = 3×3
8 1 6
3 5 7
4 9 2
colmin = min(X)
colmin = 1×3
3 1 2
colmax = max(X)
colmax = 1×3
8 9 7
Rcol = rescale(X,"InputMin",colmin,"InputMax",colmax)
Rcol = 3×3
1.0000 0 0.8000
0 0.5000 1.0000
0.2000 1.0000 0
将 X 的每一行缩放到区间 [0,1]。
rowmin = min(X,[],2)
rowmin = 3×1
1
3
2
rowmax = max(X,[],2)
rowmax = 3×1
8
7
9
Rrow = rescale(X,"InputMin",rowmin,"InputMax",rowmax)
Rrow = 3×3
1.0000 0 0.7143
0 0.5000 1.0000
0.2857 1.0000 0
算法
R = rescale(X,a,b,"InputMin",inmin,"InputMax",inmax) 使用公式
l + [(X-inmin)./(inmax-inmin)].*(b-a)
缩放数组 X 的元素(当 X 的值在 inmin 和 inmax 的边界范围内时)。
-
如果未指定 a 和 b,则 rescale 分别使用默认值 0 和 1。
-
如果未指定 InputMin,则 rescale 将其值设置为默认值 min(X(:))。
-
如果未指定 InputMax,则 rescale 将其值设置为默认值 max(X(:))。