# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

# struct2table

Convert structure array to table

## Syntax

``T = struct2table(S)``
``T = struct2table(S,Name,Value)``

## Description

example

````T = struct2table(S)` converts the structure array, `S`, to a table, `T`. Each field of `S` becomes a variable in `T`.```

example

````T = struct2table(S,Name,Value)` creates a table from a structure array, `S`, with additional options specified by one or more `Name,Value` pair arguments.For example, you can specify row names to include in the table.```

## Examples

collapse all

Convert a scalar structure to a table using the default options.

Create a structure array, `S`.

```S.Name = {'CLARK';'BROWN';'MARTIN'}; S.Gender = {'M';'F';'M'}; S.SystolicBP = [124;122;130]; S.DiastolicBP = [93;80;92]; S```
```S = struct with fields: Name: {3x1 cell} Gender: {3x1 cell} SystolicBP: [3x1 double] DiastolicBP: [3x1 double] ```

The scalar structure, `S`, has four fields, each with three rows.

Convert the structure array to a table.

`T = struct2table(S)`
```T=3×4 table Name Gender SystolicBP DiastolicBP ________ ______ __________ ___________ 'CLARK' 'M' 124 93 'BROWN' 'F' 122 80 'MARTIN' 'M' 130 92 ```

The structure field names in `S` become the variable names in the output table. The size of `T` is 3-by-4.

Change `Name` from a variable to row names by modifying the table property, `T.Properties.RowNames`, and then deleting the variable `Name`.

```T.Properties.RowNames = T.Name; T.Name = []; T```
```T=3×3 table Gender SystolicBP DiastolicBP ______ __________ ___________ CLARK 'M' 124 93 BROWN 'F' 122 80 MARTIN 'M' 130 92 ```

Create a nonscalar structure array, `S`.

```S(1,1).Name = 'CLARK'; S(1,1).Gender = 'M'; S(1,1).SystolicBP = 124; S(1,1).DiastolicBP = 93; S(2,1).Name = 'BROWN'; S(2,1).Gender = 'F'; S(2,1).SystolicBP = 122; S(2,1).DiastolicBP = 80; S(3,1).Name = 'MARTIN'; S(3,1).Gender = 'M'; S(3,1).SystolicBP = 130; S(3,1).DiastolicBP = 92; S```
```S = 3x1 struct array with fields: Name Gender SystolicBP DiastolicBP ```

`S` is a 3-by-1 structure array with four fields.

Convert the structure array to a table.

`T = struct2table(S)`
```T=3×4 table Name Gender SystolicBP DiastolicBP ________ ______ __________ ___________ 'CLARK' 'M' 124 93 'BROWN' 'F' 122 80 'MARTIN' 'M' 130 92 ```

The structure field names in `S` become the variable names in the output table. The size of `T` is 3-by-4.

Use `'AsArray',true` to create a table from a scalar structure whose fields have different numbers of rows.

Create a scalar structure, `S`, with fields `name`, `billing`, and `test`.

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

The fields have different numbers of rows. Therefore, you cannot use `struct2table(S)`, which uses `'AsArray',false` by default.

Treat the scalar structure as an array and convert it to a table.

`T = struct2table(S,'AsArray',true)`
```T=1×3 table name billing test __________ _______ ____________ 'John Doe' 127 [3x3 double] ```

`T` contains one row.

## Input Arguments

collapse all

Structure array, specified as a scalar structure array.

• If `S` is a scalar structure with `n` fields, all of which have `m` rows, then `T` is an `m`-by-`n` table.

• If `S` is a nonscalar `m`-by-`1` structure array with `n` fields, then `T` is an `m`-by-`n` table.

### Name-Value Pair Arguments

Specify optional comma-separated pairs of `Name,Value` arguments. `Name` is the argument name and `Value` is the corresponding value. `Name` must appear inside single quotes (`' '`). You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Example: `RowNames',{'row1','row2','row3'}` uses the row names, `row1`, `row2`, and `row3` for the table, `T`.

collapse all

Row names for `T`, specified as the comma-separated pair consisting of `'RowNames'` and a cell array of character vectors that are nonempty and distinct.

Indicator for how to treat scalar structure, specified as the comma-separated pair consisting of `'AsArray'` and either `false`, `true`, `0`, or `1`.

 `true` `struct2table` converts `S` to a table with one row and `n` variables. The variables can be different sizes. `false` `struct2table` converts a scalar structure array with `n` fields into an `m`-by-`n` table. Each field must have `m` rows. This is the default behavior

## Output Arguments

collapse all

Output table, returned as a table. The table can store metadata such as descriptions, variable units, variable names, and row names. For more information, see the Properties section of `table`.