dataset2struct

Class: dataset

Convert dataset array to structure

The dataset data type might be removed in a future release. To work with heterogeneous data, use the MATLAB® table data type instead. See MATLAB table documentation for more information.

Syntax

S = dataset2struct(D)
S = dataset2struct(D,'AsScalar',true)

Description

S = dataset2struct(D) converts a dataset array to a structure array. Each variable of D becomes a field in S. If D is an M-by-N dataset array, then S is M-by-1 and has N fields. If D contains observation names, then S contains those names in the additional field ObsNames.

S = dataset2struct(D,'AsScalar',true) converts a dataset array to a scalar structure. Each variable of D becomes a field in S. If D is an M-by-N dataset array, then S has N fields, each of which as M rows. If D contains observation names, then S contains those names in the additional field ObsNames.

Input Arguments

D

M-by-N dataset array.

Output Arguments

S

M-by-1 structure array, with N fields. If the input dataset array contains observation names, then S has an additional field ObsNames.

If you specify 'AsScalar',true, then S is a scalar structure, with N fields, each with M rows.

Examples

expand all

Convert Dataset Array to Structure Array

Load sample dataset array.

load('hospital')

Create a dataset array, D, that has only a subset of the observations and variables.

D = hospital(1:8,{'LastName','Sex','Age'});
size(D)
ans =

     8     3

The dataset array D has 8 observations and 3 variables.

Convert D to a structure array.

S = dataset2struct(D)
S = 

8x1 struct array with fields:
    ObsNames
    LastName
    Sex
    Age

The structure is 8x1, corresponding to the 8 observations in the dataset array. S also has the field ObsNames, since D had observation names.

Display the field data for the first element of S.

S(1)
ans = 

    ObsNames: 'YPL-320'
    LastName: 'SMITH'
         Sex: [1x1 nominal]
         Age: 38

This information corresponds to the first observation (row) of the dataset array.

Convert Dataset Array to Scalar Structure

Load sample dataset array.

load('hospital')

Create a dataset array, D, that has only a subset of the observations and variables.

D = hospital(1:8,{'LastName','Sex','Age'});
size(D)
ans =

     8     3

The dataset array D has 8 observations and 3 variables.

Convert D to a scalar structure array.

S = dataset2struct(D,'AsScalar',true)
S = 

    ObsNames: {8x1 cell}
    LastName: {8x1 cell}
         Sex: [8x1 nominal]
         Age: [8x1 double]

The data in the fields of the scalar structure is 8x1, corresponding to the 8 observations in the dataset array. S also has the field ObsNames, since D had observation names.

Display the data for the field LastName.

S.LastName
ans = 

    'SMITH'
    'JOHNSON'
    'WILLIAMS'
    'JONES'
    'BROWN'
    'DAVIS'
    'MILLER'
    'WILSON'

The structure field LastName contains all of the data that was in the original dataset array variable, LastName.

Was this topic helpful?