subsref
(Not Recommended) Subscripted reference for dataset array
The dataset
data type is not recommended. To work with heterogeneous data,
use the MATLAB®
table
data type instead. See MATLAB
table
documentation for more information.
Syntax
B = subsref(A,S)
Description
B = subsref(A,S)
is called for the syntax A(i,j)
,
A{i,j}
, or A.var
when A
is a dataset
array. S
is a structure array with the fields:
type | Character vector containing '()' , '{}' , or
'.' specifying the subscript type. |
subs | Cell array or character vector containing the actual subscripts. |
B = A(i,j)
returns a dataset array that contains a subset of the
observations and variables in the dataset array A
. i
and
j
are one of the following types:
positive integers
vectors of positive integers
observation/variable names
cell arrays containing one or more observation/variable names
logical vectors
B
contains the same property values as A
,
subsetted for observations or variables where appropriate.
B = A{i,j}
returns an element of a dataset variable. i
and j
are positive integers, or logical vectors. Cell indexing cannot return
multiple dataset elements, that is, the subscripts i
and j
must each refer to only a single observation or variable. A{i,j}
may also be
followed by further subscripting as supported by the variable.
For dataset variables that are cell arrays, expressions such as
A{1,'CellVar'}
return the contents of the referenced dataset element in the
same way that {}
-indexing on an ordinary cell array does. If the dataset
variable is a single column of cells, the contents of a single cell is returned. If the dataset
variable has multiple columns or is n
-D, multiple outputs containing the
contents of multiple cells are returned.
For dataset variables that are n
-D arrays, i.e., each observation is a
matrix or an array, expressions such as A{1,'ArrayVar'}
return
A.ArrayVar(1,:,...)
with the leading singleton dimension squeezed out.
B = A.var
or A.(varname)
returns a dataset variable.
var
is a variable name literal, or varname
is a character
variable containing a variable name. A.var
or A.(varname)
may also be followed by further subscripting as supported by the variable. In particular,
A.var(obsnames,...)
and A.var{obsnames,...}
(when
supported by var
) provide subscripting into a dataset variable using
observation names.
P = A.Properties.propertyname
returns a dataset property.
propertyname
is one of the following:
'ObsNames'
'VarNames'
'Description'
'Units'
'DimNames'
'UserData'
'VarDescription'
A.properties.propertyname
may also be followed by further
subscripting as supported by the property.
Limitations
Subscripting expressions such as A.CellVar{1:2}
,
A.StructVar(1:2).field
, or A.Properties.ObsNames{1:2}
are
valid, but result in subsref
returning multiple outputs in the form of a
comma-separated list. If you explicitly assign to output arguments on the left-hand side of an
assignment, for example, [cellval1,cellval2] = A.CellVar{1:2}
, those
variables will receive the corresponding values. However, if there are no output arguments, only
the first output in the comma-separated list is returned.
Similarly, if a dataset variable is a cell array with multiple columns or is an
n
-D cell array, then subscripting expressions such as
A{1,'CellVar'}
result in subsref
returning the contents
of multiple cells. You should explicitly assign to output arguments on the left-hand side of an
assignment, for example, [cellval1,cellval2] = A{1,'CellVar'}
.