Main Content

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

isregular

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

説明

timetable TT が指定された時間またはカレンダーの単位に関して "規則的" である場合、tf = isregular(TT,timeComponent)1 (true) を返します。それ以外の場合は 0 (false) を返します。行時間が同じタイム ステップで単調に増加または減少する場合、その timetable は規則的です。

  • TT の行時間が datetime 値である場合、それらの間のタイム ステップはカレンダーの単位 (月など) に関して規則的である可能性がありますが、正確な経過時間に関しては不規則である可能性があります。timeComponent 入力引数を使用して、時間またはカレンダーの単位を指定します。

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

  • 行時間が duration 値である場合、timeComponent'time' として指定するか、次の構文を使用します。duration データ型はカレンダーの単位を使用して時間を表しません。

tf = isregular(TT)isregular(TT,'time') と等価です。

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

すべて折りたたむ

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

行時間が 2016 年の最初の 5 つの月である 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 の連続する時間の間のタイム ステップの差を計算することができます。この差は期間で、タイム ステップを時、分、秒で表示するように書式設定されます。

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

'month' を測定単位として指定して、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。

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

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

説明

'years'

年に関して規則的

'quarters'

四半期に関して規則的

'months'

月に関して規則的

'weeks'

週に関して規則的

'days'

日に関して規則的

'time' (既定)

時間に関して規則的

出力引数

すべて折りたたむ

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

行時間の間のタイム ステップ。duration 値または calendarDuration 値として返されます。timetable が規則的ではない場合、dtNaN 値です。

ヒント

  • 場合によっては、行時間の間に規則的なタイム ステップを指定しながら timetable を作成することができますが、結果的には不規則な timetable になります。タイム ステップをカレンダーの時間単位を使用して指定し、不規則なステップを発生させる行時間が存在する場合に、このような結果が発生します。たとえば、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) からの移行、またはうるう秒である行時間が原因で不規則性が発生する場合もあります。次の表は、予期しない不規則な timetable が発生する可能性がある行時間値とタイム ステップを示しています。

    行時間値

    タイム ステップ

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

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

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

    カレンダー年の数。

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

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

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

拡張機能

R2016b で導入