如何在特殊范围[0.9 1.1]中扩展数据?

时间:2016-03-19 13:26:55

标签: image algorithm matlab image-processing

我的原始数据范围是1639964678。我想要 重新调整了给定范围[1 - alpha,1 + alpha]中的数据,其中给出了alpha。重新缩放的数据需要保持数据的属性:“非线性,缓慢变化”。我做了一个代码来做到这一点。但是,该范围不在[0.9 1.1]范围内(α= 0.1)。当前结果范围为[0.4 1.5]。你能帮我提一下解决方法吗?谢谢所有

enter image description here 这是我的代码和data

load original_data.mat;
data=double(data);
X_data=data(:,1);
Y_data=data(:,2);
%% Scale in range [0.9 1.1]
mid_range=(min(data(:))+max(data(:)))/2;
X_data_scale=X_data./mid_range;
Y_data_scale=Y_data./mid_range;
%% Plot
subplot(221);plot(X_data);title('Original X data');grid on
subplot(222);plot(X_data_scale);title('Scale X data');grid on
subplot(223);plot(Y_data);title('Original Y data');grid on
subplot(224);plot(Y_data_scale);title('Scale Y data');grid on

1 个答案:

答案 0 :(得分:2)

常规最小/最大标准化如何:

   in - min(in)        out - min(out)
----------------- = --------------------
max(in) - min(in)    max(out) - min(out)

求解out你得到:

% in is x, out is xx
load data
x = data(:,1);
xx = (x - min(x)) * (1.1 - 0.9) / (max(x) - min(x)) + 0.9;
subplot(121), plot(x)
subplot(122), plot(xx)

enter image description here