このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
withinrange
timetable の行時間が指定した時間範囲内かどうかを判別
説明
TT
の行時間の範囲が完全に rangeOfTimes
で指定された時間範囲内である場合、
は tf
= withinrange(TT
,rangeOfTimes
)1
(true
) を返します。それ以外の場合は 0
(false
) を返します。
TT
の行時間の範囲は、最小行時間と最大行時間で決まります。
例
行時間の範囲が 0 ~ 0.4 秒の timetable を作成します。
Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'TimeStep',seconds(0.1))
TT=5×1 timetable
Time Intensity
_______ _________
0 sec 100
0.1 sec 98.7
0.2 sec 95.2
0.3 sec 101.4
0.4 sec 99.1
範囲が -1 ~ 1 秒の time range オブジェクトを作成します。オブジェクトを作成するには、関数 timerange
を使用します。入力は、関数 seconds
を使用して作成できる期間です。
rangeOfTimes = timerange(seconds(-1),seconds(1))
rangeOfTimes = timetable timerange subscript: Select timetable rows with times in the half-open interval: Starting at, including: -1 sec Ending at, but excluding: 1 sec See Select Times in Timetable.
TT
の行時間が rangeOfTimes
で指定された範囲内であるかどうかを判別します。
tf = withinrange(TT,rangeOfTimes)
tf = logical
1
範囲が 0.1 ~ 0.9 秒の別の time range オブジェクトを作成します。関数 withinrange
は、TT
の最初の行時間が rangeOfTimes
内ではないため、0 を返します。
rangeOfTimes = timerange(seconds(0.1),seconds(0.9))
rangeOfTimes = timetable timerange subscript: Select timetable rows with times in the half-open interval: Starting at, including: 0.1 sec Ending at, but excluding: 0.9 sec See Select Times in Timetable.
tf = withinrange(TT,rangeOfTimes)
tf = logical
0
時間範囲が異なる 2 つの timetable を作成します。timetable は、さまざまな変数や異なる行数を持つこともできます。
Intensity = [100;98.7;95.2;101.4;99.1];
TT1 = timetable(Intensity,'TimeStep',seconds(0.1))
TT1=5×1 timetable
Time Intensity
_______ _________
0 sec 100
0.1 sec 98.7
0.2 sec 95.2
0.3 sec 101.4
0.4 sec 99.1
Readings = [74;83;99;75;87;93;92]; TT2 = timetable(Readings,'TimeStep',seconds(0.1),'StartTime',seconds(-0.1))
TT2=7×1 timetable
Time Readings
________ ________
-0.1 sec 74
0 sec 83
0.1 sec 99
0.2 sec 75
0.3 sec 87
0.4 sec 93
0.5 sec 92
TT1
内の行時間の範囲が TT2
の行時間の範囲内であるかどうかを判別します。
tf = withinrange(TT1,TT2)
tf = logical
1
他方、TT2
の行時間の範囲は TT1
の範囲内ではありません。
tf = withinrange(TT2,TT1)
tf = logical
0
各月初頭と半ばの物価を含む timetable を作成します。
Time = datetime({'2018-01-01';'2018-01-15';'2018-02-01';'2018-02-15'; '2018-03-01';'2018-03-15'}); Price = randi([85 110],6,1); TT = timetable(Time,Price)
TT=6×1 timetable
Time Price
___________ _____
01-Jan-2018 106
15-Jan-2018 108
01-Feb-2018 88
15-Feb-2018 108
01-Mar-2018 101
15-Mar-2018 87
関数 datetime
を使用して、ある時点を指定します。ここでは 2018 年 2 月 1 日午前 0 時とします。
oneTime = datetime('2018-02-01')
oneTime = datetime
01-Feb-2018
TT
の行時間を oneTime
と比較します。1 つの行時間が oneTime
に等しいのに対し、他の行時間は等しくありません。そのため、関数 withinrange
は 0 を返します。
tf = withinrange(TT,oneTime)
tf = logical
0
timetable には同じ行時間があってもかまいません。TT
のすべての行時間を同じ値に変更し、withinrange
を再度呼び出します。すべての行時間が oneTime
に等しくなり、withinrange
は 1
を返します。
TT.Time(1:end) = oneTime
TT=6×1 timetable
Time Price
___________ _____
01-Feb-2018 106
01-Feb-2018 108
01-Feb-2018 88
01-Feb-2018 108
01-Feb-2018 101
01-Feb-2018 87
tf = withinrange(TT,oneTime)
tf = logical
1
timetable を作成します。
Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'TimeStep',seconds(0.1))
TT=5×1 timetable
Time Intensity
_______ _________
0 sec 100
0.1 sec 98.7
0.2 sec 95.2
0.3 sec 101.4
0.4 sec 99.1
時間範囲を指定します。次に、その時間範囲内にある TT
の行を判別します。2 番目の出力引数 whichRows
は、要素が TT
の行に対応する logical 配列です。行時間が時間範囲内にある各行には 1
が、行時間が時間範囲内にない各行には 0
が含まれます。
rangeOfTimes = timerange(seconds(0.1),seconds(0.35)); [tf,whichRows] = withinrange(TT,rangeOfTimes)
tf = logical
0
whichRows = 5×1 logical array
0
1
1
1
0
時間範囲内の行にアクセスするには、whichRows
を使用して TT
にインデックスを付けます。
TT2 = TT(whichRows,:)
TT2=3×1 timetable
Time Intensity
_______ _________
0.1 sec 98.7
0.2 sec 95.2
0.3 sec 101.4
入力引数
入力 timetable。TT
の最小行時間と最大行時間によって時間の範囲が決まります。
時間範囲。time range オブジェクトまたは timetable として指定します。
rangeOfTimes
を time range オブジェクトとして指定する場合は、関数timerange
を使用して時間範囲を作成します。timerange
への入力として範囲の開始時間と終了時間を明示的に指定します。入力 timetable
TT
にイベント テーブルが付加されている場合は、イベント フィルターを使用する time range オブジェクトを指定してwithinrange
を呼び出すことができます。イベント フィルターを使用した時間範囲の指定の詳細については、eventfilter
を参照してください。 (R2023b 以降)
rangeOfTimes
を timetable として指定する場合は、範囲の開始と終了を明示的に指定する必要はありません。withinrange
により、timetable の最小行時間と最大行時間から自動的に取得されます。
単一の時間。datetime
スカラーまたは duration
スカラーとして指定します。
出力引数
True または False。TT
の行時間の範囲が完全に rangeOfTimes
で指定された時間範囲内である場合は logical 1
として、それ以外の場合は logical 0
として返されます。
指定された時間範囲内の行のインデックス。logical 配列として返されます。whichRows
を使用して TT
にインデックスを付けることができます。
たとえば、次のコードでは、withinrange
の 2 番目の出力を使用して、timetable TT
にインデックスを付けることができます。timetable TT2
には、行時間が rangeOfTimes
で指定された範囲内にある行のみが含まれます。
[tf,whichVars] = (TT,rangeOfTimes); TT2 = T(whichRows,:)
拡張機能
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2020a で導入withinrange
を呼び出すときに、開始時間と終了時間としてイベント フィルターを使用する時間範囲を指定できます。イベント フィルターを使用するには、まずイベント テーブルを入力 timetable に付加する必要があります。イベント フィルターを指定した withinrange
の使用の詳細については、eventfilter
を参照してください。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)