# Convert from cell of a table to an array

2 views (last 30 days)
Cameron Dyson on 30 Oct 2020
Commented: Cameron Dyson on 30 Oct 2020
I am importing data from an excel spreadsheet as follows:
Some of the excel cells contain descitions of arrays like "[1,2,3]". The cell from readtable would then be:
{'[1,2,3]'}
I would like to convert this to an array of doubles like
[1,2,3]
How can I go about doing this?

Sindar on 30 Oct 2020
Edited: Sindar on 30 Oct 2020
It gets tricky with different variable types and widths, but hopefully this helps. Worst case, you build up the new table element by element:
% build example like your table
t=table();
t{1,1}={'[1,2,3]'};
t{1,2}={'[4,5,6,7]'}
t =
1×2 table
Var1 Var2
___________ ___________
{'[1,2,3]'} {'[4,5,6,7]'}
% start a new table
t2=table();
% convert the text in the cell to an array:
t2{1,1}=str2num(t{1,1}{1});
t2{1,2}=str2num(t{1,2}{1})
t2 =
1×2 table
Var1 Var2
___________ ________________
1 2 3 4 5 6 7
##### 2 CommentsShowHide 1 older comment
Cameron Dyson on 30 Oct 2020
Thank you, its working for me now!

R2020b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!