Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

rescale

配列要素のスケール範囲

説明

R = rescale(X) は、X のエントリを [0,1] の区間にスケーリングします。出力配列 R は、X と同じサイズです。

R = rescale(X,a,b) は、X のエントリを [a,b] の区間にスケーリングします。

R = rescale(___,Name,Value) は、名前と値の引数を 1 つ以上使用して、再スケーリングに関する追加のパラメーターを指定します。たとえば、rescale(X,"InputMin",5) は、範囲 [0,1] にスケーリングする前に、X の要素のうち 5 未満の要素をすべて 5 に設定します。

すべて折りたたむ

ベクトルのエントリを区間 [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

入力引数

すべて折りたたむ

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

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

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

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

下限。スカラー、ベクトル、行列または多次元配列として指定します。a のサイズは、入力配列に適合するサイズでなければなりません。たとえば、XMN 列の行列である場合、rescalea の形状によって決定される次元に沿って動作します。

  • a がスカラーの場合、rescale はこれを X のすべての要素の下限として使用します。

  • a が 1 行 N 列の行ベクトルの場合、rescale は各要素を X の対応する列の下限として使用します。

  • aM 行 1 列の列ベクトルの場合、rescale は各要素を X の対応する行の下限として使用します。

互換性のある配列サイズの詳細については、基本的な演算で互換性のある配列サイズを参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

上限。スカラー、ベクトル、行列または多次元配列として指定します。b のサイズは、入力配列に適合するサイズでなければなりません。たとえば、XMN 列の行列である場合、rescaleb の形状によって決定される次元に沿って動作します。

  • b がスカラーの場合、rescale はこれを X のすべての要素の上限として使用します。

  • b が 1 行 N 列の行ベクトルの場合、rescale は各要素を X の対応する列の上限として使用します。

  • bM 行 1 列の列ベクトルの場合、rescale は各要素を X の対応する行の上限として使用します。

互換性のある配列サイズの詳細については、基本的な演算で互換性のある配列サイズを参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: B = rescale(A,"InputMin",5,"InputMax",10)

入力範囲の最小値。スカラー、ベクトル、行列または多次元配列として指定します。入力配列 X に対する既定値は min(X(:)) です。入力範囲を指定すると、入力データの範囲が拡大または縮小します。たとえば、rescale は、スケーリングの前に、指定した入力最小値より小さい要素をすべて InputMin の値に設定します。

InputMin の値のサイズは、入力配列に適合するサイズでなければなりません。たとえば、XMN 列の行列である場合、rescale は入力最小値の形状によって示される次元に沿って動作します。

  • 入力最小値がスカラーの場合、rescale はその最小値を X のすべての要素に対して使用します。

  • 入力最小値が 1 行 N 列の行ベクトルの場合、rescale は各要素を X の対応する列の最小値として使用します。

  • 入力最小値が M 行 1 列の列ベクトルの場合、rescale は各要素を X の対応する行の最小値として使用します。

互換性のある配列サイズの詳細については、基本的な演算で互換性のある配列サイズを参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

入力範囲の最大値。スカラー、ベクトル、行列または多次元配列として指定します。入力配列 X に対する既定値は max(X(:)) です。入力範囲を指定すると、入力データの範囲が拡大または縮小します。たとえば、rescale は、スケーリングの前に、指定した入力最大値より大きい要素をすべて InputMax の値に設定します。

InputMax の値のサイズは、入力配列に適合するサイズでなければなりません。たとえば、XMN 列の行列である場合、rescale は入力最大値の形状によって示される次元に沿って動作します。

  • 入力最大値がスカラーの場合、rescale はその最大値を X のすべての要素に対して使用します。

  • 入力最大値が 1 行 N 列の行ベクトルの場合、rescale は各要素を X の対応する列の最大値として使用します。

  • 入力最大値が M 行 1 列の列ベクトルの場合、rescale は各要素を X の対応する行の最大値として使用します。

互換性のある配列サイズの詳細については、基本的な演算で互換性のある配列サイズを参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

アルゴリズム

R = rescale(X,a,b,"InputMin",inmin,"InputMax",inmax) では次の式を使用します。

l + [(X-inmin)./(inmax-inmin)].*(b-a)

これは、X の値が inmininmax の境界内にある場合、配列 X の要素をスケーリングします。

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

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

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

拡張機能

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

バージョン履歴

R2017b で導入