# What is the difference between input of cell array {[Hi]} and {'Hi'}

6 views (last 30 days)
Lucrezia Cester on 8 Sep 2020
Answered: Walter Roberson on 8 Sep 2020
As the title says,
I have a cell array which contains data in this format
{[Hi]}
but I want to turn it to {'Hi'} so that I can turn the data into a categorical format.
Any suggestions on how to do this?
OMKARAM RAJESHWARA RAJU on 8 Sep 2020
1. from the question: what is difference between {[ Hi ]} , { 'Hi' } ..?
{[ Hi ]} ==> this will produce an error called :::: unrecoginized function variable
instead you have to use :::: { [ 'Hi' ] }
there is no difference between A1 = {'Hi'} and A2 = {['Hi']}
both are 1 * 1 cell arrays
even interms of memory : both will occupy the same 112 bytes of overhead
but the difference comes when we add next element
A3 = {'Hi' 'Fi'}
A4 = {['Hi' 'Fi']}
A3 is a cell array of size = 1 * 1 ==> {'HiFi'} ==> concatenation
A4 is a cell size = 1 * 2 ==> 'Hi' 'Fi' ==> 2 seperate cells
interms of memory: both have different memory allocation accordingly
2 . CATEGORICAL
the concept of categorical will come only when the input data type has multiple elements.
categorical is a data type that assigns values to a finite set of discrete categories, such as High, Med, and Low. These categories can have a mathematical ordering that you specify, such as High > Med > Low
please go through the documentation of categorical

Walter Roberson on 8 Sep 2020
If you have something that is displaying as
{[Hi]}
then it is a cell array that contains categorical data. If all of the entries in the same cell are scalar categorical, then you can use cell2mat() to convert into an array of categorical. Or if that fails, then [NameOfCell{:}]