Clear Filters
Clear Filters

How to split a cell array into individual rows

10 views (last 30 days)
I have a cell array of the following format:
C =
2×2 cell array
{3×2 double} {3×18 sym}
{5×2 double} {5×18 sym}
I would like to split that cell array such that the row of within each cell becomes an individual cellarray row:
C =
8×2 cell array
{1×2 double} {1×18 sym}
{1×2 double} {1×18 sym}
{1×2 double} {1×18 sym}
... ...
However I am not able to find a way to perform the above. Any help would be appreciated.

Accepted Answer

Walter Roberson
Walter Roberson on 9 Sep 2021
Edited: Walter Roberson on 9 Sep 2021
C = {randi(9,3,2), sym(randi(9,3,18)); randi(9,5,2), sym(randi(9,5,18))}
C = 2×2 cell array
{3×2 double} {3×18 sym} {5×2 double} {5×18 sym}
temp = cellfun(@(c) num2cell(c,2), C, 'uniform', 0);
temp2 = arrayfun(@(IDX) vertcat(temp{:,IDX}), 1:size(temp,2), 'uniform', 0);
newC = horzcat(temp2{:})
newC = 8×2 cell array
{[5 7]} {1×18 sym} {[2 7]} {1×18 sym} {[9 5]} {1×18 sym} {[2 3]} {1×18 sym} {[2 7]} {1×18 sym} {[3 1]} {1×18 sym} {[5 9]} {1×18 sym} {[4 2]} {1×18 sym}

More Answers (0)

Categories

Find more on Data Types 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!