メインコンテンツ

timetable のコード生成

timetable データ型は、タイムスタンプ付きの行をもつ表形式データに適したデータ型です。timetable は table と同様に、行と、列方向の変数で構成されます。timetable 内の各変数は異なるデータ型および異なるサイズをもつことができますが、各変数には、行数が同じでなければなければならないという制限があります。

timetable の "行時間" は、行にラベルを付ける時間値です。行時間と変数によって、timetable にインデックスを作成できます。timetable にインデックスを作成するには、小かっこ () を使用してサブテーブルを返すか、または中かっこ {} を使用して内容を抽出します。変数と行時間のベクトルを名前で参照できます。詳細については、timetableを参照してください。

コード生成で timetable を使用する場合は、次の制限に従ってください。

コード生成用の timetable の定義

コード生成用に MATLAB® コードで timetable を定義するには、timetable 関数を使用します。あるいは、array2timetable 関数および table2timetable 関数を使用して、配列や table を timetable に変換することもできます。コード生成では、timetable を作成するときに名前と値の引数 "RowTimes" および "VariableNames" を指定しなければなりません。timetable 変数の名前は、有効な MATLAB 識別子である必要はありません。変数名には、任意の ASCII 文字 (コンマ、ダッシュ、空白文字など) を含めることができます。行時間は、datetime 値または duration 値のいずれかでなければなりません。

たとえば、AB、および C が 10 行 1 列の double の配列、vnames が列名の cell 配列、rtimesdatetime 値のベクトルであるとします。これらの配列を timetable 変数として使用して timetable を作成する関数のコードを生成できます。

function TT = foo(A,B,C,D,vnames) %#codegen
    TT = timetable(A,B,C,'RowTimes',rtimes,'VariableNames',vnames);
end

timetable で実行可能な演算

コード生成では、次の表に示す timetable に対する演算に制限されます。

演算メモ

代入演算子: =

TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);
TT{:,1} = X;

コード生成では次に対する代入演算子 = の使用はサポートされません。

  • 変数または行の削除。

  • 変数または行の追加。

インデックス演算

D = seconds(1:10);
TT = timetable(A,B,C,'RowTimes',D,'VariableNames',vnames);
TT(seconds(3:7),1:3);

コード生成では、位置、変数または行時間によるインデックス付け、および論理インデックス付けがサポートされます。また、関数 timerange または関数 withtol を使用して作成したオブジェクトでインデックスを付けることもできます。

コード生成では以下がサポートされます。

  • 小かっこ () による timetable へのインデックス付け。

  • 中かっこ {} によるコンテンツへのインデックス付け。

  • timetable 変数にアクセスするドット表記。

連結

TT1 = timetable(A,B,C,'RowTimes',D1,'VariableNames',vnames);
TT2 = timetable(D,E,F,'RowTimes',D2,'VariableNames',vnames);
TT = [TT1 ; TT2];

コード生成では timetable の連結がサポートされます。

  • 垂直連結の場合、timetable は同じ名前を同じ順序でもつ変数をもたなければなりません。

  • 水平連結の場合、timetable は同じ行数をもたなければなりません。また、同じ行時間を同じ順序でもたなければなりません。

timetable をサポートする MATLAB ツールボックス関数

コード生成では、次の MATLAB ツールボックス関数で timetable を使用できます。

参考

トピック