指定された範囲内の指定された整数の配列を正規化する基本的な matlab プログラムを作成したいと思います。
- 入力は配列 [ a1 、 a2 、 a3 、 a4 、 a5 、 a6 、 a7... ]、および範囲 [ x 、 y ] です。
- 出力は正規化された配列です。
しかし、どこでも、[0,1] または [-1,1] の範囲で正規化が見られます。可変範囲の正規化が見つかりません。matlabコードまたは変数範囲の式を書いていただければ幸いです。
アイデアありがとうございます。
指定された範囲内の指定された整数の配列を正規化する基本的な matlab プログラムを作成したいと思います。
しかし、どこでも、[0,1] または [-1,1] の範囲で正規化が見られます。可変範囲の正規化が見つかりません。matlabコードまたは変数範囲の式を書いていただければ幸いです。
アイデアありがとうございます。
に正規化する場合は[x, y]
、まず次の方法で正規化し[0, 1]
ます。
range = max(a) - min(a);
a = (a - min(a)) / range;
次に、次のようにスケーリングし[x,y]
ます。
range2 = y - x;
a = (a * range2) + x;
すべてを一緒に入れて:
function normalized = normalize_var(array, x, y)
% Normalize to [0, 1]:
m = min(array);
range = max(array) - m;
array = (array - m) / range;
% Then scale to [x,y]:
range2 = y - x;
normalized = (array*range2) + x;
MATLAB には、正規化のための特別な機能があります。これらは、正規化の入力値に使用される人工ニューラル ネットワーク ツールボックスに含まれています。
マップ最小最大
mapminmax は、各行の最小値と最大値を [YMIN, YMAX] に正規化することによって行列を処理します。
mapstd
mapstd は、各行の平均と標準偏差を ymean と ystd に変換することによって行列を処理します。