struct2table
構造体配列のテーブルへの変換
説明
は、構造体配列をテーブルに変換します。入力構造体の各フィールドは、出力テーブルの変数になります。T = struct2table(S)
入力に応じて、次のようになります。
n個のフィールドをもつスカラー構造体で、それらすべてのフィールドがm行をもつ場合、出力はm行n列の table になります。(フィールドの行数が異なるスカラー構造体の場合は、次の構文で名前と値の引数
AsArrayを使用します。)n個のフィールドをもつm行 1 列または 1 行m列の構造体配列である場合、出力はm行n列の table になります。各構造体は、出力 table の対応する行の値を提供します。
は、前述の構文の入力引数に加え、1 つ以上の名前と値の引数を使用してオプションを指定します。T = struct2table(S,Name=Value)
たとえば、AsArray を true に設定すると、入力を構造体配列として扱うよう struct2table に強制できます。入力がスカラー構造体の場合、出力は 1 行の 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 列です。
フィールドの行数が異なるスカラー構造体から table を作成するには、スカラー構造体を構造体配列として扱います。
name、billing および test の各フィールドをもつスカラー構造体を作成します。
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: [3×3 double]
この場合、これらのフィールドは行数が異なるため、struct2table(S) は使用できません。
代わりに、名前と値の引数 AsArray を設定して入力を構造体配列として扱います。この構文を使用すると、フィールドの行数が異なる場合でも、スカラー構造体を 1 行の table に変換できます。
T = struct2table(S,AsArray=true)
T=1×3 table
name billing test
__________ _______ ____________
"John Doe" 127 {3×3 double}
入力引数
入力配列。スカラー構造体または構造体配列として指定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: struct2table(S,AsArray=true) は、S がスカラー構造体の場合、S を 1 行の table に変換します。
行名。空でない一意の要素を含む string 配列または文字ベクトルの cell 配列として指定します。行名の数は、入力配列の行数と等しくなければなりません。
行名には、空白や非 ASCII 文字を含む任意の Unicode® 文字を使用できます。ただし、コロン文字 : は除きます。
先頭または末尾に空白文字を含む行名を指定すると、struct2table は行名からそれらを削除します。
次元名。2 要素 string 配列または要素が空ではない一意の文字ベクトルの 2 要素 cell 配列として指定します。
次元名には、スペース、非 ASCII 文字を含む任意の Unicode 文字を使用できます。ただし、次元名は、table 変数名や予約名 Properties、RowNames、VariableNames、またはコロン文字 : と同じであってはなりません。
代わりに、すべてのリリースで、table の DimensionNames プロパティを設定することで次元名を指定できます。
入力を構造体配列として扱うためのフラグ。数値または logical 1 (true) または 0 (false) として指定します。
入力が "非スカラー" の構造体配列の場合の既定値 | 構造体配列を、構造体ごとに 1 つの行をもち、構造体配列のフィールドごとに 1 つの変数をもつテーブルに変換します。フィールドはサイズが異なっていてもかまいません。 フィールド
|
入力が "スカラー" 構造体の場合の既定値 |
例: S.a = [1;2;3] S.b = [4 5;6 7;8 9] T = struct2table(S) T =
3×2 table
a b
_ ______
1 4 5
2 6 7
3 8 9
|
出力引数
拡張機能
使用上の注意および制限:
詳細については、table のコード生成 (MATLAB Coder)およびコード生成における table の制限事項 (MATLAB Coder)を参照してください。
使用上の注意および制限については、「C/C++ コード生成」セクションを参照してください。GPU コード生成にも同様の、使用上の注意および制限が適用されます。
スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。
バージョン履歴
R2013b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)