Main Content

rescale

配列要素のスケール範囲

説明

R = rescale(A) は、A のすべての要素における最小値と最大値に従って、A のすべての要素を区間 [0, 1] にスケーリングします。出力配列 R は、A と同じサイズです。

R = rescale(A,l,u)A のすべての要素を区間 [l u] にスケーリングします。

R = rescale(___,Name,Value) は、前述の構文の入力引数の任意の組み合わせに加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、rescale(A,"InputMin",5) は、区間 [0, 1] にスケーリングする前に、A の 5 未満の要素をすべて 5 に設定します。

すべて折りたたむ

ベクトルの要素を単位区間 [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

2 番目の列を区間 [–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

入力引数

すべて折りたたむ

入力配列。ベクトル、行列または多次元配列として指定します。

  • Asingle 型の場合、出力も single 型です。それ以外の場合、出力の型は double です。

  • A が定数の場合、rescale は区間の下限 (既定値は 0) または NaN (指定した区間に Inf が含まれる場合) を返します。

再スケーリングされるデータの下限。スカラー、ベクトル、行列または多次元配列として指定します。l は上限未満でなければならず、入力配列と互換性のあるサイズでなければなりません。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

A のすべての要素に対して同じ下限を使用するには、l をスカラーとして指定します。A の列または行ごとに異なる下限を使用するには、それぞれ行ベクトルまたは列ベクトルとして l を指定します。

列または行ごとに異なる区間の上下限を設定した場合でも、rescale は各列または行のスケーリング値を計算する際に入力配列内のすべての値を考慮します。各列または行を独立して再スケーリングするには、l および u をベクトルとして指定することに加え、名前と値の引数 InputMin および InputMax をベクトルとして指定して各列または行に沿って入力配列の範囲を設定します。

再スケーリングされるデータの上限。スカラー、ベクトル、行列または多次元配列として指定します。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 の既定値は min(A(:)) です。InputMin のサイズは入力配列と互換性がなければなりません。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

InputMin を指定して入力配列の範囲をクリップまたは拡大します。rescale は入力範囲の最小値として、A の最小値ではなく InputMin を使用します。AInputMin 未満の要素は、スケーリング前に InputMin の対応する値に設定されます。

A のすべての要素に対して同じ入力範囲最小値を使用するには、InputMin をスカラーとして指定します。A の列を独立してスケーリングするには、InputMin を行ベクトルとして指定します。A の行を独立してスケーリングするには、InputMin を列ベクトルとして指定します。

例: R = rescale(A,"InputMin",5)

例: R = rescale(A,"InputMin",min(A),"InputMax",max(A))

入力範囲の最大値。スカラー、ベクトル、行列または多次元配列として指定します。InputMax の既定値は max(A(:)) です。InputMax のサイズは入力配列と互換性がなければなりません。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

InputMax を指定して入力配列の範囲をクリップまたは拡大します。rescale は入力範囲の最大値として、A の最大値ではなく InputMax を使用します。InputMax より大きい A の要素は、スケーリング前に InputMax の対応する値に設定されます。

A のすべての要素に対して同じ入力範囲最大値を使用するには、InputMax をスカラーとして指定します。A の列を独立してスケーリングするには、InputMax を行ベクトルとして指定します。A の行を独立してスケーリングするには、InputMax を列ベクトルとして指定します。

例: R = rescale(A,"InputMax",10)

例: R = rescale(A,"InputMin",min(A),"InputMax",max(A))

アルゴリズム

rescale は式 R=l+[Ainputmininputmaxinputmin](ul) を使用して、A の値が InputMinInputMax で定義された範囲内の場合に入力配列 A の要素をスケーリングします。

  • lu が指定されていない場合、rescale は既定値として 0 および 1 をそれぞれ使用します。

  • InputMin が指定されていない場合、rescale はその値を既定値の min(A(:)) に設定します。

  • InputMax が指定されていない場合、rescale はその値を既定値の max(A(:)) に設定します。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2017b で導入