timetable のコード生成
timetable
データ型は、タイムスタンプ付きの行をもつ表形式データに適したデータ型です。timetable は table と同様に、行と、列方向の変数で構成されます。timetable 内の各変数は異なるデータ型および異なるサイズをもつことができますが、各変数には、行数が同じでなければなければならないという制限があります。
timetable の "行時間" は、行にラベルを付ける時間値です。行時間と変数によって、timetable にインデックスを作成できます。timetable にインデックスを作成するには、小かっこ ()
を使用してサブテーブルを返すか、または中かっこ {}
を使用して内容を抽出します。変数と行時間のベクトルを名前で参照できます。詳細については、timetableを参照してください。
コード生成で timetable を使用する場合は、次の制限に従ってください。
コード生成用の timetable の定義
コード生成用に、関数 timetable
を使用します。たとえば、MATLAB® 関数への入力引数が、同じ行数 (A
、B
および C
)、行時間 (D
) が含まれる datetime
または duration
ベクトル、変数名 (vnames
) が含まれる cell 配列をもつ 3 つの配列であるとします。これらの配列を含む timetable を timetable 変数として作成できます。
function TT = foo(A,B,C,D,vnames) %#codegen TT = table(A,B,C,'RowTimes',D,'VariableNames',vnames); end
配列と table を timetable に変換するには、関数 array2timetable
と関数 table2timetable
を使用します。たとえば、入力 M
行 N
列の行列を timetable に変換でき、行列の各列は timetable 内の変数になります。duration
ベクトルを使用して行時間を代入します。
function TT = foo(A,D,vnames) %#codegen TT = array2timetable(A,'RowTimes',D,'VariableNames',vnames); end
コード生成では、timetable の作成時に timetable 変数名を指定しなければなりません。timetable 変数の名前は、有効な MATLAB 識別子である必要はありません。名前は ASCII 文字で構成されなければなりませんが、任意の ASCII 文字 (コンマ、ダッシュ、空白文字など) を含めることができます。
行時間には、datetime
または duration
のいずれかのデータ型を使用できます。
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); | コード生成では、位置、変数または行時間によるインデックス付け、および論理インデックス付けがサポートされます。また、関数 コード生成では以下がサポートされます。
|
連結 |
TT1 = timetable(A,B,C,'RowTimes',D1,'VariableNames',vnames); TT2 = timetable(D,E,F,'RowTimes',D2,'VariableNames',vnames); TT = [TT1 ; TT2]; | コード生成では timetable の連結がサポートされます。
|
timetable をサポートする MATLAB ツールボックス関数
コード生成では、次の MATLAB ツールボックス関数で timetable を使用できます。