Main Content

table のコード生成

table データ型は列方向データまたは表形式データに適したデータ型です。多くの場合、こうしたデータはテキスト ファイルやスプレッドシートに列として格納されます。table は、行と、列方向の変数で構成されます。table 内の各変数は異なるデータ型および異なるサイズをもつことができますが、各変数には、行数が同じでなければなければならないという制限があります。詳細については、tableを参照してください。

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

コード生成用の table の定義

コード生成用に、関数 table を使用します。たとえば、MATLAB® 関数への入力引数が、同じ行数をもつ 3 つの配列と変数名が含まれる cell 配列であるとします。これらの配列が含まれる table を table 変数として作成できます。

function T = foo(A,B,C,vnames) %#codegen
    T = table(A,B,C,'VariableNames',vnames);
end

関数 array2tablecell2table および struct2table を使用して、配列、cell 配列、構造体を table に変換できます。たとえば、入力 cell 配列を table に変換できます。

function T = foo(C,vnames) %#codegen
    T = cell2table(C,'VariableNames',vnames);
end

コード生成では、table の作成時に table 変数名を指定しなければなりません。table 変数の名前は、有効な MATLAB 識別子である必要はありません。名前は ASCII 文字で構成されなければなりませんが、任意の ASCII 文字 (コンマ、ダッシュ、空白文字など) を含めることができます。

table で実行可能な演算

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

演算メモ

代入演算子: =

T = table(A,B,C,'VariableNames',vnames);
T{:,1} = D;

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

  • 変数または行の削除。

  • 変数または行の追加。

インデックス演算

T = table(A,B,C,'VariableNames',vnames);
T(1:5,1:3);

コード生成では、位置、変数または行名によるインデックス付け、および論理インデックス付けがサポートされます。

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

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

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

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

連結

T1 = table(A,B,C,'VariableNames',vnames);
T2 = table(D,E,F,'VariableNames',vnames);
T = [T1 ; T2];

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

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

  • 水平連結の場合、table は同じ行数をもたなければなりません。table に行名がある場合、同じ行名を同じ順序でもたなければなりません。

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

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

関連するトピック