MATLAB Data Types: Everything You Need to Know

MATLAB provides many ways to store numbers and variables. All the numbers are equivalent to actual numerical real numbers. There is an upper limit to the largest number and a lower limit on the absolute value of the non-zero number. This is due to the finite memory of the processing devices compared to the real number, which can be infinite.

Due to finite space, the MATLAB variable cannot store an irrational number. E.g., The value of pi is returned to the approximation value. The set of values that are represented in the MATLAB variable is finite. Data types in MATLAB will help to handle this limitation.

All MATLAB variables belong to a class where different classes have different characteristics and are suitable to represent different types of data, whether it is numeric, textual, or complex.  

Remember: All the given elements in an array should be of the same type.

MATLAB provides in a total of 16 fundamental types, and the data types in MATLAB is defined by,

  • Set of values defined
  • Operation Set that can be used to perform on those values


Numerical Types

The numerical types include signed and unsigned integers, single, double-precision floating-point numbers. The numeric variables and their features are listed below:

double Double-precision arrays
  • Default numeric data type (class) in MATLAB
  • Stored as 64-bit (8-byte) floating-point value
  • Range-

Negative numbers = -1.79769 x 10308 and -2.22507 x 10-308

Positive numbers = 2.22507 x 10-308 and 1.79769 x 10308

single Single-precision arrays
  •   Stored as 4-byte (32-bit) floating-point value
  •    Range-

Negative numbers = -1.79769 x 10308 and -2.22507 x 10-308

Positive numbers = 2.22507 x 10-308 and 1.79769 x 10308

int8 8-bit signed integer arrays
  • Stored as 1-byte (8-bit) signed integers
  • Range is -27 to 27-1
int16 16-bit signed integer arrays
  • Stored as 2-byte (16-bit) signed integers
  •  Range -215 to 215 -1
int32 32-bit signed integer arrays
  • Stored as 4-byte (32-bit) signed integers
  •  Range is -231 to 231-1
int64 64-bit signed integer arrays
  • Stored as 8-byte (64-bit) signed integers
  •  Range is -263 to 263-1
uint8 8-bit unsigned integer arrays
  • Stored as 1-byte (8-bit) unsigned integers
  •  Range is 0 to 28-1
uint16 16-bit unsigned integer arrays
  • Stored as 2-byte (16-bit) unsigned integers
  • Range is 0 to 216 -1
uint32 32-bit unsigned integer arrays
  • Stored as 4-byte (32-bit) unsigned integers
  •  Range is 0 to 232-1
uint64 64-bit unsigned integer arrays
  • Stored as 8-byte (64-bit) unsigned integers
  •  Range is 0 to 264-1

Read: While loop in MATLAB: Everything You Need to Know

Logical Type

True and false value is represented with the logical value 0 and 1. Any numerical value (non-complex) can be converted into logical representation.

Syntax: L = logical (x)

The above statement converts x into any array of logical values. Nonzero element of x is converted to the logical value 1 (true), and zero value is converted to logical value 0 (false). 

Character and String type

The MATLAB character and string array provide storage for text data. The sequence of characters is a character array compared with the sequence of numbers called a numeric array.

Syntax: c = ‘up grad’

“up grad” is the sequence of characters forming a string array. We can observe this also as a piece of text wrapped.

Cell array

A cell array is a MATLAB data type which contains indexed data containers called cellsCells can contain any type of data, commonly contain character vectors of different length, numbers, an array of numbers of any size. Sets of cells are enclosed in () and access to the cells is done by using {} which is to create, edit or delete any cell functions.

Syntaxc = {s,m,i,l,e}


Tabular or column-oriented data requires tables, and this is stored as columns in a text file or spreadsheet. It contains rows and column variables. Each variable can be of different data types and different sizes, but each variable needs to have the same number of rows.

Range of functions are used to access data to create, edit, and read the table data.


Named fields contain data with varying types and sizes. Here data containers are used to group related data and their type, which are called fieldsFields may contain any type of data.

Access to the data in the structures is given using the dot notation.

Format: structname.fieldName.


Scalar structure is used to store patient records, belonging to the same group.

patient(1).name = ‘John Doe’;

patient(1).billing = 127.00;

patient(1).test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205];

Function Handles

Use of a function handle is majorly to pass a function (numerical or char) to another function. Variables that are used to invoke function indirectly can be named as Function handle.

To create a function handle ‘@’ operator is used.

Example: To create a function handle to evaluate a2 -b2 , function used is:

F = @(a,b) (a.^2 – b.^2);

Data type identification

MATLAB has a set of variables that are used to identify the data type 

iscalendarduration To check if input data is calendar duration array
iscellstr To check if input data is a cell array is of character vectors
iscell To check if input data is cell array
isjava To check if input data is Java object
ischar To check if input data is character array
iscategorical To check whether input data is categorical array
isduration To check if input data is duration array
isenum To check if variable is enumeration
isfloat To check if input data is floating-point array
isdatetime To check if input data is datetime array
isinteger To check whether input data is integer array
istable To check whether input data is table
isgraphics True for valid graphics object handles
isnumeric To check whether input data is numeric array
isobject To check if input data is MATLAB object
isreal To check whether array is real
isstring To check if input data is string array
isstruct To check if input data is structure array
validateattributes Check validity of array
istimetable To check if input data is timetable
isa To check if input data has specified data type
islogical To check if input data is logical array
is* Detect state
class Class of object

Data Type conversion

The following functions are used to change between different MATLAB data types, a numeric array, character array, cell array, structures, or tables.

char – Character array

cellstr – To change to cell array of character vectors

int2str – To change integers to characters

mat2str – To change matrix to characters

num2str – To change numbers to a character array

str2double – To change strings to double precision values

str2num – To change character array or string to numeric array

native2unicode – To change numeric bytes to Unicode character representation

unicode2native – To change Unicode character representation to numeric bytes

base2dec – To change text representing a number in base N to decimal number

hex2dec – To change text representation of a hexadecimal number to decimal number

hex2num – To change IEEE hexadecimal format to a double-precision number

num2hex – To change single- and double-precision numbers to IEEE hexadecimal format

table2array – To change the table to a homogeneous array

table2cell – To change table to cell array

table2struct – To change table to structure array

array2table – To change the homogeneous array to a table

cell2table – To change the cell array to a table

struct2table – To change the structure array to a table

cell2mat – To change cell array to an ordinary array of the underlying data type

cell2struct – To change cell array to structure array

mat2cell – To change array to cell array whose cells contain subarrays

num2cell – To change array to cell array with consistently sized cells

struct2cell – To change structure to cell array    

Also Read: Recursion in Data Structure: How Does it Work, Types & When Used


From the above article, we got an overview of various MATLAB data types. Each of these data types is very essential for MATLAB users to understand and effectively use MATLAB programming. MATLAB is very popular in the science and engineering fields due to its precise calculation, syntax, and large community support.  

If you’re interested to learn more about MATLAB, machine learning, and its relevant topics, check out IIIT-B & upGrad’s PG Diploma in Machine Learning & AI which is designed for working professionals and offers 450+ hours of rigorous training, 30+ case studies & assignments, IIIT-B Alumni status, 5+ practical hands-on capstone projects & job assistance with top firms.

What are different data types used in MATLAB?

Data in MATLAB can be either numeric or character. Numeric data represents values that correspond to the numbers and arithmetic operations you are familiar with, such as addition and multiplication. Character data are strings of text, such as words, letters, or symbols (such as '$'). The elements of character arrays can be accessed using the same syntax as for numeric data (e.g., C('This is a character array') returns the element of array C that contains the string, This is a character array).

What are structures in MATLAB?

MATLAB includes three classes of structures: cell arrays, structs, and handle arrays. A cell array is a single data structure that contains elements of different types. A cell array is actually a group of structures, each of which contains one element of the array. If you use the cell() function to create a cell array, MATLAB fills the array with zeros by default. A struct is a collection of variables that all have the same name, but may have different types. MATLAB handles structs as cell arrays. You can store only one struct in a cell array. A handle array is a container for references to other MATLAB arrays or to objects such as graphs and figures. You can store multiple handle arrays in a cell array.

How to identify the data type in matlab?

This can be done using isa command in matlab. The syntax of isa command is as: isa(my_data). For example: If you want to know the data type of my_data, you can use the isa command as: isa(my_data) This will return the following text: int64, int32, int16, uint8, uint32, uint64, complex64, complex128, char. This command is to be used in matlab only.

Want to share this article?

Lead the AI Driven Technological Revolution

Enroll Today

Leave a comment

Your email address will not be published. Required fields are marked *

Contact Form

Our Popular Machine Learning Course

Leave a comment

Your email address will not be published. Required fields are marked *