Arrays 取一个数组并将其值转换为新的最小值和最大值

Arrays 取一个数组并将其值转换为新的最小值和最大值,arrays,matlab,interpolation,Arrays,Matlab,Interpolation,我在一列中有一个数据数组,长度为354717。这些值在最小值12.8和最大值64.2之间变化 我想创建一个大小相同的数组,最小值=2.7,最大值=27 有什么建议吗?您可以先规范化数据,使动态范围介于[0,1]之间。一旦你这样做了,你就可以将你的值乘以27-2.7=24.3,然后用2.7抵消它,得到你的值在[2.7,27]之间。换句话说,如果数组名为A,请执行以下操作: normA = (A - min(A)) / (max(A) - min(A)); %// Normalize to [0,1

我在一列中有一个数据数组,长度为354717。这些值在最小值12.8和最大值64.2之间变化

我想创建一个大小相同的数组,最小值=2.7,最大值=27


有什么建议吗?

您可以先规范化数据,使动态范围介于[0,1]之间。一旦你这样做了,你就可以将你的值乘以27-2.7=24.3,然后用2.7抵消它,得到你的值在[2.7,27]之间。换句话说,如果数组名为A,请执行以下操作:

normA = (A - min(A)) / (max(A) - min(A)); %// Normalize to [0,1].
out = 24.3*normA + 2.7; %// Change to [2.7, 27]
通常,如果要使数据在某个范围内,请首先像第一行代码中那样规范化数据,然后执行以下操作:

out = (maxD - minD)*normA + minD;
记住,normA是标准化数据,因此它介于[0,1]之间。minD和maxD是所需范围的最小值和最大值。对于您的情况,minD=2.7,maxD=27


祝你好运

是否要将值重新缩放为介于2.7和27之间?