how to rearrange cell array with the grouped sequence
Show older comments
I have a cell array in this format:
21 3 '1'
31 2 '1 1'
25 1 '2 2 1 1'
How can I rearrange the cell array to:
21 3 1
31 2 1
31 2 1
25 1 2
25 1 2
25 1 1
25 1 1
Thank you!
1 Comment
So within each cell array there are two numeric values and a char array?
Could you show us the actual cell values formatted correctly?
For example,
C =
3×3 cell array
{[21]} {[3]} {'1' }
{[31]} {[2]} {'1 1' }
{[25]} {[1]} {'2 2 1 1'}
Accepted Answer
More Answers (1)
Stephen23
on 10 Jan 2020
>> C = {21,3,'1';31,2,'1 1';25,1,'2 2 1 1'}
C =
[21] [3] '1'
[31] [2] '1 1'
[25] [1] '2 2 1 1'
>> V = cellfun(@(s)sscanf(s,'%f'),C(:,3),'uni',0);
>> Z = [repelem(C(:,1:2),cellfun('length',V),1),num2cell(vertcat(V{:}))]
Z =
[21] [3] [1]
[31] [2] [1]
[31] [2] [1]
[25] [1] [2]
[25] [1] [2]
[25] [1] [1]
[25] [1] [1]
Categories
Find more on Cell Arrays 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!