Divide/split/reshape/convert a 1x6 cell array with different sizes cell arrays to a 19x1 cell array
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi
I have a 1x6 cell that is:
Columns 1 through 6
[2x1195 double] [4x1195 double] [2x1195 double] [4x752 double] [4x694 double] [3x695 double]
and I need to convert it to a 19x1 cell that is:
[1x1195 double]
[1x1195 double]
[1x1195 double]
[1x1195 double]
[1x1195 double]
[1x1195 double]
[1x1195 double]
[1x1195 double]
[1x752 double]
[1x752 double]
[1x752 double]
[1x752 double]
[1x694 double]
[1x694 double]
[1x694 double]
[1x694 double]
[1x695 double]
[1x695 double]
[1x695 double]
Meaning each row of a "inner" cell becomes the row of the "outer" cell. The first two rows are the 2 rows of Column 1, and so on.
I have already tried the function reshape, cell2mat, mat2cell, cat, but I haven't been able to make it work.
Thank you
0 Commenti
Risposte (1)
Jan
il 16 Nov 2016
Modificato: Jan
il 21 Nov 2016
C = ... % Your input
D = cell(size(C))
for k = 1:numel(C)
D{k} = num2cell(C{k}, 2); % [EDITED, {k} added]
end
Result = cat(1, D{:});
3 Commenti
Guillaume
il 16 Nov 2016
Possibly a cleaner version of the above:
D = cellfun(@(c) num2cell(c, 2), C, 'UniformOutput', false);
Result = vertcat(D{:});
Vedere anche
Categorie
Scopri di più su Data Type Conversion in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!