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)