MATLAB For Beginners: 20Minute Video Training Course. (Grab The Training Course and The Cheat Sheet for FREE)
In this article, you will learn to use text in a matrix.
Defining a Matrix with Numbers and Strings
For example, let’s say you want to define the following matrix
Knowing that you can define strings (i.e. text) with single quotation marks, you could be tempted to do the following:
m = ['column1' 'column2' 'column3' ; 1 2 3 ; 4 5 6];
Let’s try to run this piece of code:
Why doesn’t this work?
MATLAB concatenates ‘column1’ with ‘column2’ with ‘column3’, which means that the first row has one column and the second and third rows have three columns:
Using Cells
The solution is actually pretty simple once you know the trick: use cells to separate the content. Here’s an example of how to do this:
m = [{'column1'} {'column2'} {'column3'} ; {1} {2} {3} ; {4} {5} {6}]
To use a cell, you just have to write what you want between braces (e.g., {‘x’}). Then, if you want to access the content of one of the cells of the matrix, you have to use braces as well.
If you use parentheses, the output will be a cell instead of the content of a cell, which means you won’t be able to manipulate it (i.e. you won’t be able to do any operation on the number of the matrix m).
Key takeaways:

 The matrix definition:
m = ['column1' 'column2' 'column3' ; 1 2 3 ; 4 5 6];
doesn’t work because MATLAB concatenates ‘column1’ with ‘column2’ with ‘column3’.
 Instead, to mix strings and numbers in a matrix use cells:
m = [{'column1'} {'column2'} {'column3'} ; {1} {2} {3} ; {4} {5} {6}]
 The matrix definition: