Main Content

struct2table

構造体配列のテーブルへの変換

説明

T = struct2table(S) は、構造体配列 S を table T に変換します。S の各フィールドは T の 1 つの変数になります。

T = struct2table(S,Name,Value) は、1 つ以上の Name,Value のペアの引数で指定された追加のオプションを使用して、構造体配列 S から table を作成します。

たとえば、テーブルに含める行名を指定できます。

すべて折りたたむ

既定のオプションを使用してスカラー構造体をテーブルに変換します。

構造体配列 S を作成します。

S.Name = ["Chang";"Brown";"Ruiz"];
S.Smoker = ["Y";"N";"Y"];
S.SystolicBP = [124;122;130];
S.DiastolicBP = [93;80;92];

スカラー構造体配列 S には 4 つのフィールドがあり、各フィールドが 3 つの行で構成されています。

構造体配列をテーブルに変換します。

T = struct2table(S)
T=3×4 table
     Name      Smoker    SystolicBP    DiastolicBP
    _______    ______    __________    ___________

    "Chang"     "Y"         124            93     
    "Brown"     "N"         122            80     
    "Ruiz"      "Y"         130            92     

S の構造体のフィールド名が、出力 table では変数名になります。T のサイズは 3 行 4 列です。

table プロパティ T.Properties.RowNames を変更してから、変数 Name を削除して、 Name を変数名から行名に変更します。

T.Properties.RowNames = T.Name;
T.Name = [];

T
T=3×3 table
             Smoker    SystolicBP    DiastolicBP
             ______    __________    ___________

    Chang     "Y"         124            93     
    Brown     "N"         122            80     
    Ruiz      "Y"         130            92     

非スカラー構造体配列 S を作成します。

S(1,1).Name = "Chang";
S(1,1).Smoker = "Y";
S(1,1).SystolicBP = 124;
S(1,1).DiastolicBP = 93;

S(2,1).Name = "Brown";
S(2,1).Smoker = "N";
S(2,1).SystolicBP = 122;
S(2,1).DiastolicBP = 80;

S(3,1).Name = "Ruiz";
S(3,1).Smoker = "Y";
S(3,1).SystolicBP = 130;
S(3,1).DiastolicBP = 92;

S
S=3×1 struct array with fields:
    Name
    Smoker
    SystolicBP
    DiastolicBP

S は、フィールドが 4 個ある 3 行 1 列の構造体配列です。

構造体配列をテーブルに変換します。

T = struct2table(S)
T=3×4 table
     Name      Smoker    SystolicBP    DiastolicBP
    _______    ______    __________    ___________

    "Chang"     "Y"         124            93     
    "Brown"     "N"         122            80     
    "Ruiz"      "Y"         130            92     

S の構造体のフィールド名が、出力 table では変数名になります。T のサイズは 3 行 4 列です。

"AsArray",true を使用して、フィールドの行数が異なるスカラー構造体から table を作成します。

namebilling および test という名前のフィールドをもつスカラー構造体 S を作成します。

S.name = "John Doe";
S.billing = 127.00;
S.test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205]
S = struct with fields:
       name: "John Doe"
    billing: 127
       test: [3x3 double]

これらのフィールドは行数が異なります。そのため、既定で "AsArray",false を使用する struct2table(S) を使用することはできません。

スカラー構造体を配列として処理し、テーブルに変換します。

T = struct2table(S,"AsArray",true)
T=1×3 table
       name       billing        test    
    __________    _______    ____________

    "John Doe"      127      {3x3 double}

T には 1 つの行が含まれています。

入力引数

すべて折りたたむ

構造体配列。スカラー構造体配列として指定します。

  • Sn 個のフィールドをもつスカラー構造体で、それらすべてのフィールドが m 行をもつ場合、Tmn 列のテーブルになります。

  • S が、n 個のフィールドをもつ m1 列の非スカラー構造体である場合、Tmn 列のテーブルになります。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: "RowNames",["row1","row2","row3"] は、行名 row1row2 および row3 を table T に使用します。

行名。"RowNames" と、string 配列または文字ベクトルの cell 配列 (要素は空ではなく一意) で構成されるコンマ区切りのペアとして指定します。

行名には、空白や非 ASCII 文字を含む任意の Unicode® 文字を使用できます。

先頭または末尾に空白文字を含む行名を指定すると、struct2table は行名からそれらを削除します。

"R2021a 以降"

次元名。要素が空ではない一意の文字ベクトルの 2 要素 cell 配列または 2 要素 string 配列として指定します。

次元名には、スペース、非 ASCII 文字を含む任意の Unicode 文字を使用できます。

R2021a より前は、出力の DimensionNames プロパティの設定によってのみ、次元名を指定できます。

スカラー構造体の処理方法のインジケーター。"AsArray" と、falsetrue01 のいずれかで構成されるコンマ区切りのペアとして指定します。

true

struct2table は、S を 1 つの行と n 個の変数をもつテーブルに変換します。変数は異なるサイズにすることができます。

false

struct2table は、n 個のフィールドをもつスカラー構造体配列を mn 列のテーブルに変換します。各フィールドには、m 行が含まれていなければなりません。これは既定の動作です。

出力引数

すべて折りたたむ

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

拡張機能

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

バージョン履歴

R2013b で導入