Main Content

setvartype

Set variable data types

Description

opts = setvartype(opts,type) updates all the variables in the opts object based on the specified type. type must be a character vector or a cell array of character vector of valid data type names.

example

opts = setvartype(opts,selection,type) updates data type for only the variables specified in the selection argument.

Examples

collapse all

Use detectImportOptions to create import options, set multiple variable data types, and then read the data using readtable.

Create an options object.

opts = detectImportOptions('patients.xls');

Examine the current (detected) data types of the variables.

disp([opts.VariableNames' opts.VariableTypes'])
    {'LastName'                }    {'char'   }
    {'Gender'                  }    {'char'   }
    {'Age'                     }    {'double' }
    {'Location'                }    {'char'   }
    {'Height'                  }    {'double' }
    {'Weight'                  }    {'double' }
    {'Smoker'                  }    {'logical'}
    {'Systolic'                }    {'double' }
    {'Diastolic'               }    {'double' }
    {'SelfAssessedHealthStatus'}    {'char'   }

Change the data type of multiple variables depending on your import needs.

opts = setvartype(opts,{'LastName','Gender','Location',...
                   'Smoker','SelfAssessedHealthStatus'},'string');
opts = setvartype(opts,{'Age','Height','Weight',...
                                'Systolic','Diastolic'},'single');

Examine the updated data types of the variables.

disp([opts.VariableNames' opts.VariableTypes'])
    {'LastName'                }    {'string'}
    {'Gender'                  }    {'string'}
    {'Age'                     }    {'single'}
    {'Location'                }    {'string'}
    {'Height'                  }    {'single'}
    {'Weight'                  }    {'single'}
    {'Smoker'                  }    {'string'}
    {'Systolic'                }    {'single'}
    {'Diastolic'               }    {'single'}
    {'SelfAssessedHealthStatus'}    {'string'}

Import the variables with their updated types using readtable.

T = readtable('patients.xls',opts);

Input Arguments

collapse all

File import options, specified as a SpreadsheetImportOptions, DelimitedTextImportOptions, or a FixedWidthImportOptions object created by the detectImportOptions function. The opts object contains properties that control the data import process, such as variable properties, data location properties, replacement rules, and others.

Selected variables, specified as a character vector, string scalar, cell array of character vectors, string array, array of numeric indices, or a logical array.

Variable names (or indices) must be a subset of the names contained in the VariableNames property of the opts object.

Example: 'Height'

Example: {'Height','LastName'}

Example: [5 9]

Data Types: char | string | cell | uint64 | logical

Variable data type, specified as a character vector, string scalar, cell array of character vectors, or string array containing valid data type names. The type argument designates the data types to use when importing the variable. Import the variables using one of the data types listed here.

DataMATLAB® Data Type
Text

'char' or 'string'

Numeric

'single', 'double', 'int8', 'int16', 'int32', 'int64', 'uint8', 'uint16', 'uint32', or 'uint64'

Undefined floating-point numbers NaN, -Inf, +Inf are only valid for single and double data types. Therefore, when you change the type of floating-point data to an integer, the importing function converts the undefined floating-point numbers. For example, when converting to the 'uint8' data type:

  • NaN is converted to 0.

  • -Inf is converted to intmin('int8').

  • +Inf is converted to intmax('int8').

The same conversion process applies to all the integer data types: int8, int16, int16, int32, int64, uint8, uint16, uint32, or uint64.

Logical

'logical'

Date and time

'datetime'

Duration

'duration'

Categorical

'categorical'

Example: opts = setvartype(opts,'Height','double') changes the data type of the variable Height to double.

Example: opts = setvartype(opts,{'Weight','LastName'},{'single','string'}) changes the data type of the variable Weight to single and variable LastName to string.

Data Types: char | string | cell

Version History

Introduced in R2016b