Converting a Cell of Cells into an Array of a String Column and Double Column
9 views (last 30 days)
Show older comments
I have a 5x2 cell made up of cells. It is set up like this:
Red Car 50
Blue Car 45
Green Car 30
Black Car 60
Yellow Car 55
I need to convert the first column into strings, and the second column into a double. Is there anyway I can do this easily?
2 Comments
matquest
on 31 Mar 2020
Edited: matquest
on 31 Mar 2020
I think we need a little more information. Are both columns currently strings? E.g.,
cell_array = {{'Red Car'},{'50'}; {'Blue Car'}, {'45'}};
Or is one column a string and the other a double? E.g.,
cell_array = {{'Red Car'},{50}; {'Blue Car'}, {45}};
Secondly, what is the end goal? Do you want two separate arrays? Or do you want a single array and to change the type in each column?
Answers (1)
Cris LaPierre
on 31 Mar 2020
Arrays do not support mixed data types. Cells do, which is why your data is probably stored in a cell array. Something that does meet your objectives is a table. So if I had a 5x2 cell array carData
carData =
5×2 cell array
{'Red Car' } {[50]}
{'Blue Car' } {[45]}
{'Green Car' } {[30]}
{'Black Car' } {[60]}
{'Yellow Car'} {[55]}
I could use the function cell2table to make it a table where the first column (called a variable) is car type, and the second is car speed.
carTbl = cell2table(carData,'VariableNames',{'Car','Speed'})
carTbl =
5×2 table
Car Speed
______________ _____
{'Red Car' } 50
{'Blue Car' } 45
{'Green Car' } 30
{'Black Car' } 60
{'Yellow Car'} 55
0 Comments
See Also
Categories
Find more on Tables in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!