メインコンテンツ

clip

データを範囲内にクリップ

R2024a 以降

説明

C = clip(X,lower,upper) は、配列 X 内の値を、lower より小さい値を lower に置き換え、upper より大きい値を upper に置き換えることで、[lower,upper] の範囲にクリップします。返されるクリップ後のデータは、入力データと同じサイズおよびデータ型になります。

C = clip(X,lower,upper,Name=Value) は、1 つ以上の名前と値の引数を使用して、クリップ用に追加のパラメーターを指定します。名前と値の引数は表形式の入力データでのみサポートされます。たとえば、clip(X,lower,upper,DataVariables=datavars)datavars で指定された table 変数の値をクリップします。

すべて折りたたむ

データのベクトル内の値を [3, 6] の範囲にクリップします。結果のベクトルには、指定した範囲内の値が含まれます。ここで、3 未満の値はすべて 3 に、6 より大きい値はすべて 6 に置き換えられます。

X = 1:7;
C = clip(X,3,6)
C = 1×7

     3     3     3     4     5     6     6

7 行 4 列の数値行列を作成します。

col = [1:7]';
X = repmat(col,1,4)
X = 7×4

     1     1     1     1
     2     2     2     2
     3     3     3     3
     4     4     4     4
     5     5     5     5
     6     6     6     6
     7     7     7     7

行列の各列の値をクリップします。行ベクトルとして指定された下限の各要素は、入力データの対応する列に対して許可される最小値を設定します。スカラーとして指定された上限は、入力データのすべての列に対して許可される最大値を設定します。

lower = [1 2 3 4];
upper = 6;
C = clip(X,lower,upper)
C = 7×4

     1     2     3     4
     2     2     3     4
     3     3     3     4
     4     4     4     4
     5     5     5     5
     6     6     6     6
     6     6     6     6

4 行 7 列の数値行列を作成します。

row = 1:7;
X = repmat(row,4,1)
X = 4×7

     1     2     3     4     5     6     7
     1     2     3     4     5     6     7
     1     2     3     4     5     6     7
     1     2     3     4     5     6     7

行列の各行の値をクリップします。列ベクトルとして指定された下限の各要素は、入力データの対応する行に対して許可される最小値を設定します。スカラーとして指定された上限は、入力データのすべての行に対して許可される最大値を設定します。

lower = [1; 2; 3; 4];
upper = 6;
C = clip(X,lower,upper)
C = 4×7

     1     2     3     4     5     6     6
     2     2     3     4     5     6     6
     3     3     3     4     5     6     6
     4     4     4     4     5     6     6

データのベクトル内の値を最大値 0 にクリップします。上限のみにクリップする場合は、下限を -Inf として指定します。この値は下限が存在しないことを示し、clip は上限を超える値を上限値で置き換えます。

X = -6:6;
C = clip(X,-Inf,0)
C = 1×13

    -6    -5    -4    -3    -2    -1     0     0     0     0     0     0     0

あるいは、下限のみにクリップする場合は、上限を Inf として指定します。

さまざまなデータ型の 3 つの変数を含むテーブルを作成します。

num = rand(6,1);
num2 = single(rand(6,1));
dt = datetime(2016:2021,1,1)';
T = table(num,num2,dt)
T=6×3 table
      num       num2          dt     
    _______    _______    ___________

    0.81472     0.2785    01-Jan-2016
    0.90579    0.54688    01-Jan-2017
    0.12699    0.95751    01-Jan-2018
    0.91338    0.96489    01-Jan-2019
    0.63236    0.15761    01-Jan-2020
    0.09754    0.97059    01-Jan-2021

さまざまなデータ型をもつ変数に対して、1 行の table で範囲を指定します。

lower = table(0.2,single(0.1),datetime(2018,1,1),VariableNames=["num" "num2" "dt"])
lower=1×3 table
    num    num2        dt     
    ___    ____    ___________

    0.2    0.1     01-Jan-2018

upper = table(0.9,Inf,datetime(2020,1,1),VariableNames=["num" "num2" "dt"])
upper=1×3 table
    num    num2        dt     
    ___    ____    ___________

    0.9    Inf     01-Jan-2020

table 内の num および dt の値をクリップし、クリップされたデータを含む table 変数を入力 table 変数に追加します。

C = clip(T,lower,upper,DataVariables=["num" "dt"],ReplaceValues=0)
C=6×5 table
      num       num2          dt         num_clipped    dt_clipped 
    _______    _______    ___________    ___________    ___________

    0.81472     0.2785    01-Jan-2016      0.81472      01-Jan-2018
    0.90579    0.54688    01-Jan-2017          0.9      01-Jan-2018
    0.12699    0.95751    01-Jan-2018          0.2      01-Jan-2018
    0.91338    0.96489    01-Jan-2019          0.9      01-Jan-2019
    0.63236    0.15761    01-Jan-2020      0.63236      01-Jan-2020
    0.09754    0.97059    01-Jan-2021          0.2      01-Jan-2020

あるいは、numdt の範囲のみを含む 1 行の table として範囲を指定する場合は、DataVariables の名前と値の引数を指定する必要はありません。

入力引数

すべて折りたたむ

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

clipX 内の欠損値を無視します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | categorical | datetime | duration | table | timetable

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

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

表形式の入力データの場合に、演算の対象とする table 変数に異なるデータ型があるときは、下限を 1 行の table として指定します。1 行の table の変数名は、演算の対象とする table 変数の名前と同じでなければなりません。

1 つの下限のみにクリップする場合は、上限を Inf として指定します。

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

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

表形式の入力データの場合に、演算の対象とする table 変数に異なるデータ型があるときは、上限を 1 行の table として指定します。1 行の table の変数名は、演算の対象とする table 変数の名前と同じでなければなりません。

上限のみにクリップする場合は、下限を -Inf として指定します。

名前と値の引数

すべて折りたたむ

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

例: clip(X,lower,upper,ReplaceValues=false)

演算の対象とする table 変数。次の表のオプションのいずれかとして指定します。DataVariables の値は、入力 table または timetable 内のどの変数でクリップするかを示します。

DataVariables は table および timetable 入力データでのみサポートされます。

DataVariables で指定されていない table 内の他の変数は、演算されずに出力に渡されます。DataVariables を指定しない場合、clipX 内のすべての変数について演算を行います。

インデックス方式指定する値

変数名

  • string スカラーまたは文字ベクトル

  • string 配列または文字ベクトルの cell 配列

  • pattern オブジェクト

  • "A" または 'A'A という名前の変数

  • ["A" "B"] または {'A','B'}A および B という名前の 2 つの変数

  • "Var"+digitsPattern(1)"Var" の後に数字 1 桁が続く名前の変数

変数インデックス

  • table 内の変数の位置を参照するインデックス番号

  • 数値のベクトル

  • logical ベクトル。通常、このベクトルの長さは変数の数と同じですが、末尾の 0 (false) 値は省略できます。

  • 3 — table の 3 番目の変数

  • [2 3] — table の 2 番目と 3 番目の変数

  • [false false true] — 3 番目の変数

関数ハンドル

  • 入力として table 変数を取り、logical スカラーを返す関数ハンドル

  • @isnumeric — 数値を含んでいるすべての変数

変数の型

  • 指定した型の変数を選択する vartype 添字

  • vartype("numeric") — 数値を含んでいるすべての変数

例: clip(X,lower,upper,DataVariables=["Var1" "Var2" "Var4"])

値置換インジケーター。X が table または timetable の場合に、次の値のいずれかの数値または論理値として指定します。

  • true または 1 — 入力 table 変数を、クリップされたデータを含む table 変数に置き換えます。

  • false または 0 — 演算対象のすべての table 変数を、入力 table に追加します。追加される変数にはクリップされたデータが含まれます。

ReplaceValues は table および timetable 入力データでのみサポートされます。

例: clip(X,lower,upper,ReplaceValues=false)

バージョン履歴

R2024a で導入

参考

関数