Main Content

table2timetable

table の timetable への変換

説明

TT = table2timetable(T) は、table T を timetable に変換します。T 内の最初の datetime または duration 変数が、TT の行時間のベクトルになります。T の残りの変数が TT の変数になります。

  • T が行名のない MN 列の table の場合、TTM(N-1) 列の timetable です。

  • T が行名のある MN 列の table の場合、table2timetableT の行名を TT の変数に割り当てます。その結果、TTMN 列の timetable となります。

timetable の作成および使用の詳細については、timetableを参照してください。

テキスト ファイルまたはスプレッドシート ファイルのデータから timetable を作成するには、関数 readtimetable を使用します。

TT = table2timetable(T,'RowTimes',timeVarName) は、table 変数 timeVarName を出力 timetable の行時間のベクトルとして割り当てます。timeVarName は datetime または duration 値を含む T 内の任意の変数名にすることができます。T の残りの変数が TT の変数になります。

TT = table2timetable(T,'RowTimes',rowTimes) は、ベクトル rowTimes を出力 timetable の行時間のベクトルとして割り当てます。T のすべての変数が TT の変数になります。

TT = table2timetable(T,'SampleRate',Fs) は、サンプル レート Fs を使用して等間隔の行時間を計算します。Fs は 1 秒あたりのサンプル数 (Hz) を指定する正の数値スカラーです。最初の行時間はゼロ秒です。

TT = table2timetable(T,'TimeStep',dt) はタイム ステップ dt を使用して等間隔の行時間を計算します。dt は連続する行時間の間の時間の長さを指定する期間またはカレンダー期間の値です。最初の行時間はゼロ秒です。

TT = table2timetable(___,'StartTime',t0) は最初の行時間としてゼロ秒ではなく開始時間 t0 を指定します。この構文は、前述の 2 つの構文にある名前と値のペアの引数 'SampleRate' または 'TimeStep' のいずれかを使用して規則的な timetable を作成する場合に使用できます。

すべて折りたたむ

日付と時刻を含む table を timetable に変換します。

ファイル outages.csv から停電データを table に読み取ります。table には停電と復旧の両方の時刻が含まれています。

T = readtable('outages.csv');
T(1:5,:)
ans=5×6 table
       Region             OutageTime          Loss     Customers       RestorationTime              Cause       
    _____________    ____________________    ______    __________    ____________________    ___________________

    {'SouthWest'}    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    {'winter storm'   }
    {'SouthEast'}    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    {'winter storm'   }
    {'SouthEast'}    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'   }
    {'West'     }    06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    {'equipment fault'}
    {'MidWest'  }    16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    {'severe storm'   }

table を timetable に変換します。時刻のある最初の変数 OutageTimeTT の時間ベクトルになります。

TT = table2timetable(T);
TT(1:5,:)
ans=5×5 timetable
         OutageTime            Region         Loss     Customers       RestorationTime              Cause       
    ____________________    _____________    ______    __________    ____________________    ___________________

    01-Feb-2002 12:18:00    {'SouthWest'}    458.98    1.8202e+06    07-Feb-2002 16:50:00    {'winter storm'   }
    23-Jan-2003 00:49:00    {'SouthEast'}    530.14    2.1204e+05                     NaT    {'winter storm'   }
    07-Feb-2003 21:15:00    {'SouthEast'}     289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'   }
    06-Apr-2004 05:44:00    {'West'     }    434.81    3.4037e+05    06-Apr-2004 06:10:00    {'equipment fault'}
    16-Mar-2002 06:18:00    {'MidWest'  }    186.44    2.1275e+05    18-Mar-2002 23:23:00    {'severe storm'   }

その時間ベクトルの行時間を TT のインデックスとして使用します。行時間は、行を指定するラベルとして扱うことができます。

TT('2003-02-07 21:15',:)
ans=1×5 timetable
         OutageTime            Region        Loss     Customers       RestorationTime            Cause      
    ____________________    _____________    _____    __________    ____________________    ________________

    07-Feb-2003 21:15:00    {'SouthEast'}    289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'}

停電の継続期間を計算します。ドット構文を使用して、行時間をベクトルとして抽出します。

TT.OutageDuration = TT.RestorationTime - TT.OutageTime;
TT(1:5,:)
ans=5×6 timetable
         OutageTime            Region         Loss     Customers       RestorationTime              Cause           OutageDuration
    ____________________    _____________    ______    __________    ____________________    ___________________    ______________

    01-Feb-2002 12:18:00    {'SouthWest'}    458.98    1.8202e+06    07-Feb-2002 16:50:00    {'winter storm'   }      148:32:00   
    23-Jan-2003 00:49:00    {'SouthEast'}    530.14    2.1204e+05                     NaT    {'winter storm'   }            NaN   
    07-Feb-2003 21:15:00    {'SouthEast'}     289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'   }      226:59:00   
    06-Apr-2004 05:44:00    {'West'     }    434.81    3.4037e+05    06-Apr-2004 06:10:00    {'equipment fault'}       00:26:00   
    16-Mar-2002 06:18:00    {'MidWest'  }    186.44    2.1275e+05    18-Mar-2002 23:23:00    {'severe storm'   }       65:05:00   

table を timetable に変換し、timetable の時間ベクトルになる table 変数を指定します。

ファイル outages.csv から停電データを table に読み取ります。table には停電と復旧の両方の時刻が含まれています。

T = readtable('outages.csv');
T(1:5,:)
ans=5×6 table
       Region             OutageTime          Loss     Customers       RestorationTime              Cause       
    _____________    ____________________    ______    __________    ____________________    ___________________

    {'SouthWest'}    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    {'winter storm'   }
    {'SouthEast'}    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    {'winter storm'   }
    {'SouthEast'}    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    {'winter storm'   }
    {'West'     }    06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    {'equipment fault'}
    {'MidWest'  }    16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    {'severe storm'   }

table を timetable に変換します。日付と時刻のある 2 番目の変数 RestorationTime を、timetable の時間ベクトルとして指定します。

TT = table2timetable(T,'RowTimes','RestorationTime');
TT(1:5,:)
ans=5×5 timetable
      RestorationTime          Region             OutageTime          Loss     Customers            Cause       
    ____________________    _____________    ____________________    ______    __________    ___________________

    07-Feb-2002 16:50:00    {'SouthWest'}    01-Feb-2002 12:18:00    458.98    1.8202e+06    {'winter storm'   }
    NaT                     {'SouthEast'}    23-Jan-2003 00:49:00    530.14    2.1204e+05    {'winter storm'   }
    17-Feb-2003 08:14:00    {'SouthEast'}    07-Feb-2003 21:15:00     289.4    1.4294e+05    {'winter storm'   }
    06-Apr-2004 06:10:00    {'West'     }    06-Apr-2004 05:44:00    434.81    3.4037e+05    {'equipment fault'}
    18-Mar-2002 23:23:00    {'MidWest'  }    16-Mar-2002 06:18:00    186.44    2.1275e+05    {'severe storm'   }

行時間を含む個別の時間ベクトルを追加して、table を timetable に変換します。すべての table 変数が timetable の変数になります。

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

Time = [seconds(1):seconds(1):seconds(5)];
TT = table2timetable(T,'RowTimes',Time)
TT=5×2 timetable
    Time     Reading1    Reading2
    _____    ________    ________

    1 sec        98        120   
    2 sec      97.5        111   
    3 sec      97.9        119   
    4 sec      98.1        117   
    5 sec      97.9        116   

table を作成します。

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

500 Hz のサンプル レートを指定します。そのサンプル レートと 0 秒の行の開始行時間を使用して、T を timetable に変換します。

TT = table2timetable(T,'SampleRate',500)
TT=5×2 timetable
      Time       Reading1    Reading2
    _________    ________    ________

    0 sec            98        120   
    0.002 sec      97.5        111   
    0.004 sec      97.9        119   
    0.006 sec      98.1        117   
    0.008 sec      97.9        116   

table を作成します。

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

関数 seconds を使用して、10 秒のタイム ステップを指定します。そのサンプリング レートと 0 秒の行の開始行時間を使用して、T を timetable に変換します。

TT = table2timetable(T,'TimeStep',seconds(10))
TT=5×2 timetable
      Time      Reading1    Reading2
    ________    ________    ________

    00:00:00        98        120   
    00:00:10      97.5        111   
    00:00:20      97.9        119   
    00:00:30      98.1        117   
    00:00:40      97.9        116   

table を作成します。

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

10 秒のタイム ステップと 5 秒の開始時間を指定して timetable に変換します。

dt = seconds(10);
t0 = seconds(5);
TT = table2timetable(T,'TimeStep',dt,'StartTime',t0)
TT=5×2 timetable
     Time     Reading1    Reading2
    ______    ________    ________

    5 sec         98        120   
    15 sec      97.5        111   
    25 sec      97.9        119   
    35 sec      98.1        117   
    45 sec      97.9        116   

入力引数

すべて折りたたむ

入力テーブル。

入力テーブルからの変数の名前。文字ベクトルまたは string スカラーとして指定します。

出力 timetable に割り当てられる行時間。datetime ベクトルまたは duration ベクトルとして指定します。rowTimes の要素数は、入力テーブルの行数と等しくなければなりません。rowTimes の時間値は、一意であったり、並べ替えられていたり、規則的な値である必要はありません。

サンプル レート。正の数値スカラーとして指定します。Fs は 1 秒あたりのサンプル数 (Hz) を指定します。

タイム ステップ。datetime スカラーまたは duration スカラーとして指定します。

データ型: datetime | duration | calendarDuration

開始時間。datetime スカラーまたは duration スカラーとして指定します。

  • t0 が datetime 値である場合、TT の行時間は datetime 値です。

  • t0 が duration である場合、行時間は duration です。

タイム ステップ dt がカレンダー期間の値である場合、t0 は datetime 値でなければなりません。

データ型: datetime | duration

出力引数

すべて折りたたむ

出力 timetable。timetable には、説明、変数の単位、変数名、行時間などのメタデータを保存できます。詳細については、timetable プロパティの節を参照してください。

ヒント

  • 場合によっては、行時間の間の一定のタイム ステップを指定する構文を使用して table2timetable を呼び出すこともできますが、それでも table2timetable は不規則な timetable を返します。タイム ステップをカレンダーの時間単位を使用して指定し、不規則なステップを発生させる行時間が存在する場合に、このような結果が発生します。たとえば、2019 年 1 月 31 日から始まり、タイム ステップが 1 カレンダー月の timetable を作成した場合、月に関して不規則になります。

    stime = datetime(2019,1,31);
    tstep = calmonths(1);
    T = table([1:3]');
    TT = table2timetable(T,'TimeStep',tstep,'StartTime',stime)
    
    TT =
    
      3×1 timetable
    
           Time        Var1
        ___________    ____
    
        31-Jan-2019     1  
        28-Feb-2019     2  
        31-Mar-2019     3  
    
    

    夏時間 (DST) からの移行、またはうるう秒である datetime 値が原因で不規則性が発生する場合もあります。次の表は、予期しない不規則な結果が発生する可能性がある日付、時刻、およびタイム ステップを示しています。

    行時間値

    タイム ステップ

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

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

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

    カレンダー年の数。

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

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

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

拡張機能

スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。

バージョン履歴

R2016b で導入

すべて展開する