mat2dataset

Convert matrix to dataset array

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

Description

example

ds = mat2dataset(X) converts a matrix to a dataset array.

example

ds = mat2dataset(X,Name,Value) performs the conversion using additional options specified by one or more Name,Value pair arguments.

Examples

expand all

Convert Matrix to Dataset Array

Convert a matrix to a dataset array using the default options.

Load sample data.

load('fisheriris')
X = meas;
size(X)
ans =

   150     4

Convert the matrix to a dataset array.

ds = mat2dataset(X);
size(ds)
ans =

   150     4
ds(1:5,:)
ans = 

    X1     X2     X3     X4 
    5.1    3.5    1.4    0.2
    4.9      3    1.4    0.2
    4.7    3.2    1.3    0.2
    4.6    3.1    1.5    0.2
      5    3.6    1.4    0.2

When you do not specify variable names, mat2dataset uses the matrix name and column numbers to create default variable names.

Convert Matrix to Dataset Array with Variable Names

Load sample data.

load('fisheriris')
X = meas;
size(X)
ans =

   150     4

Convert the matrix to a dataset array, providing a variable name for each of the four column of X.

ds = mat2dataset(X,'VarNames',{'SLength',...
'SWidth','PLength','PWidth'});
size(ds)
ans =

   150     4
ds(1:5,:)
ans = 

    SWidth    SLength    PWidth    PLength
    5.1       3.5        1.4       0.2    
    4.9         3        1.4       0.2    
    4.7       3.2        1.3       0.2    
    4.6       3.1        1.5       0.2    
      5       3.6        1.4       0.2      

Create a Dataset Array with Multicolumn Variables

Convert a matrix to a dataset array containing multicolumn variables.

Load sample data.

load('fisheriris')
X = meas;
size(X)
ans =

   150     4

Convert the matrix to a dataset array, combining the sepal measurements (the first two columns) into one variable named SepalMeas, and the petal measurements (third and fourth columns) into one variable names PetalMeas.

ds = mat2dataset(X,'NumCols',[2,2],...
'VarNames',{'SepalMeas','PetalMeas'});
ds(1:5,:)
ans = 

    SepalMeas          PetalMeas      
    5.1         3.5    1.4         0.2
    4.9           3    1.4         0.2
    4.7         3.2    1.3         0.2
    4.6         3.1    1.5         0.2
      5         3.6    1.4         0.2

The output dataset array has 150 observations and 2 variables.

size(ds)
ans =

   150     2

Input Arguments

expand all

X — Input matrixmatrix

Input matrix to convert to a dataset array, specified as an M-by-N numeric matrix. Each column of X becomes a variable in the output M-by-N dataset array.

Data Types: single | double

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: 'NumCols',[1,1,2,1] specifies that the 3rd and 4th columns of the input matrix should be combined into a single variable.

'VarNames' — Variable names for output dataset arraycell array of strings

Variable names for the output dataset array, specified as the comma-separated pair consisting of 'VarNames' and a cell array of strings. You must provide a variable name for each variable in ds. The names must be valid MATLAB identifiers, and must be unique.

Example: 'VarNames',{'myVar1','myVar2','myVar3'}

'ObsNames' — Observation names for output dataset arraycell array of strings

Observation names for the output dataset array, specified as the comma-separated pair consisting of 'ObsNames' and a cell array of strings. The names do not need to be valid MATLAB identifiers, but they must be unique.

'NumCols' — Number of columns for each variablevector of nonnegative integers

Number of columns for each variable in ds, specified as the comma-separated pair consisting of 'NumCols' and a vector of nonnegative integers. When the number of columns for a variable is greater than one, mat2dataset combines multiple columns in X into a single variable in ds. The vector you assign to NumCols must sum to size(X,2).

For example, to convert a matrix with eight columns into a dataset array with five variables, specify a vector with five elements that sum to eight, such as 'NumCols',[1,1,3,1,2].

Output Arguments

expand all

ds — Output dataset arraydataset array

Output dataset array, returned by default with a variable for each column of X, and an observation for each row of X. If you specify NumCols, then the number of variables in ds is equal to the length of the specified vector of column numbers.

More About

Was this topic helpful?