Main Content

isregular

時間またはカレンダーの単位に関して入力時間が規則的かどうかを判別

説明

tf = isregular(D) は、D が時間に関して "規則的" である場合、1 (true) を返します。それ以外の場合は 0 (false) を返します。入力 D は、その時間に一意のタイム ステップで厳密な単調さ (増加または減少のいずれか) が連続する場合、規則的となります。

入力引数 D を、以下のように指定できます。

  • datetime ベクトル。

  • duration ベクトル。

  • timetable。行時間のベクトルが規則的である場合、規則的となります。

この構文は isregular(D,'time') と等価です。

tf = isregular(D,timeUnit) は、D が指定された時間またはカレンダーの単位に関して規則的であるかどうかを判別します。

たとえば、D は月に関して規則的であっても、月が異なれば日数が異なる場合があるため、正確な経過時間に関しては不規則である可能性があります。D が月に関して規則的であるかどうかを判別するには、timeUnit'months' として指定します。

[tf,dt] = isregular(___) は連続する時間の間のタイム ステップ dt を返します。D が規則的である場合、dtduration 値または calendarDuration 値のいずれかです。D が規則的ではない場合、dtNaN 値です。

すべて折りたたむ

関数 seconds を使用して、duration ベクトルを作成します。

D = seconds(1:5)
D = 1x5 duration
   1 sec   2 sec   3 sec   4 sec   5 sec

関数 isregular を使用して D をテストします。連続する要素間の時間間隔が常に同じであるため、D は規則的です。

tf = isregular(D)
tf = logical
   1

D の最後の要素を変更します。

D(end) = seconds(10)
D = 1x5 duration
    1 sec    2 sec    3 sec    4 sec   10 sec

D は規則的ではなくなりました。

tf = isregular(D)
tf = logical
   0

月ごとの datetime ベクトルを使用して timetable を作成します。timetable が時間に関して規則的であるかどうかを判別してから、月に関して規則的であるかどうかを判別します。

最初に、datetime 値として格納されている 2016 年の最初の 5 つの月が行時間である timetable を作成します。timetable 変数として毎月の株価を追加します。

StockPrice = [109.0;107.82;113.17;128.01;116];
M = timetable(datetime(2016,1:5,3)',StockPrice)
M=5×1 timetable
       Time        StockPrice
    ___________    __________

    03-Jan-2016         109  
    03-Feb-2016      107.82  
    03-Mar-2016      113.17  
    03-Apr-2016      128.01  
    03-May-2016         116  

M が規則的な timetable かどうかを判別します。

tf = isregular(M)
tf = logical
   0

最初の 5 つの月は日数が異なるので、M は時間に関して規則的ではありません。したがって、連続する行時間の間にある時間の正確な長さは行ごとに異なります。関数 diff を使用して M の連続する時間の間のタイム ステップの差を計算することができます。この差は duration 値で、タイム ステップを時、分、秒で表示するように書式設定されます。

T = diff(M.Time)
T = 4x1 duration
   744:00:00
   696:00:00
   744:00:00
   720:00:00

M の行時間の間にある時間間隔は常に 1 カレンダー月であるため、M は月に関して規則的です。

tf = isregular(M,'months')
tf = logical
   1

timetable を作成します。規則的であるかどうかを判別してから、規則的である場合はタイム ステップのサイズを返します。

Time = [minutes(0):minutes(15):minutes(60)]';
Pulse = [72 75 80 73 69]';
TT = timetable(Time,Pulse)
TT=5×1 timetable
     Time     Pulse
    ______    _____

    0 min      72  
    15 min     75  
    30 min     80  
    45 min     73  
    60 min     69  

[TF,dt] = isregular(TT)
TF = logical
   1

dt = duration
   15 min

TT は規則的な timetable です。

入力引数

すべて折りたたむ

入力変数。timetable、datetime ベクトル、または duration ベクトルとして指定します。

時間またはカレンダーの単位。文字ベクトルまたは string スカラーとして指定します。isregularD の連続する時間が timeUnit によって指定された時間またはカレンダーの単位に関して規則的であるかどうかを判別します。指定できる単位を次の表に示します。

時間またはカレンダーの単位

説明

'years'

年に関して規則的

'quarters'

四半期に関して規則的

'months'

月に関して規則的

'weeks'

週に関して規則的

'days'

日に関して規則的

'time' (既定)

時間に関して規則的

  • Ddatetime ベクトルであるか、またはその行時間が datetime 値となる timetable である場合、タイム ステップはカレンダーの単位 (月など) に関して規則的である可能性がありますが、正確な経過時間に関しては不規則である可能性があります。

    たとえば、時間が月ごとに規則的な datetime 値であり、timeUnit'month' である場合、isregular1 を返します。ただし、timeUnit'time' である場合、月が異なれば表される時間の長さも異なるため、isregular0 を返します。

  • Dduration ベクトルであるか、またはその行時間が duration 値となる timetable である場合、timeUnit'time' として指定するか、最初の構文を使用します。duration データ型はカレンダーの単位を使用して時間を表しません。

出力引数

すべて折りたたむ

true または false。入力が規則的である場合は logical 1、規則的でない場合は logical 0 として返されます。

連続する時間の間のタイム ステップ。duration スカラーまたは calendarDuration スカラーとして返されます。入力が規則的ではない場合、dtNaN 値です。

ヒント

  • 場合によっては、規則的なタイム ステップを指定しながら timetable または datetime ベクトルを作成できますが、結果は不規則になります。タイム ステップをカレンダーの時間単位を使用して指定し、不規則なステップを発生させる時間が存在する場合に、このような結果が発生する可能性があります。たとえば、2019 年 1 月 31 日から始まり、タイム ステップが 1 カレンダー月の timetable を作成した場合、月に関して不規則になります。

    stime = datetime(2019,1,31);
    tstep = calmonths(1);
    TT = timetable('Size',[3 1],'VariableTypes',{'double'},...
                   'TimeStep',tstep,'StartTime',stime);
    tf = isregular(TT,'month')
    
    tf =
    
      logical
    
       0
    
  • 夏時間 (DST) からの移行、またはうるう秒である datetime 値が原因で不規則性が発生する場合もあります。次の表は、予期しない不規則な結果が発生する可能性がある日付、時刻、およびタイム ステップを示しています。

    行時間値

    タイム ステップ

    月の 29 日、30 日または 31 日として指定する開始時間。

    カレンダー月または四半期の数。

    2 月 29 日として指定する開始時間。

    カレンダー年の数。

    DST から標準時間に移行する日の午前 1 時と午前 2 時の間に発生するすべての datetime 値 (それらの値のタイム ゾーンで DST が適用される場合)。カレンダー日またはカレンダー月の数。

    うるう秒であるすべての datetime 値 (それらの値のタイム ゾーンが UTCLeapSeconds タイム ゾーンである場合)。うるう秒のリストについては、leapseconds を参照してください。

    任意のカレンダー単位 (日、週、月、四半期、年) で指定されているタイム ステップ。

拡張機能

バージョン履歴

R2016b で導入