splitting large cell array into smaller cell arrays
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
hi
I have a large cell array "a" (5290*1) such that each element of the array is of size e.g. size(a{1,1}) = 21*204
i want to split these further such that each element of a{1,1} contains another cell array such that size of a{1,1}.b1 = 3*204 and i have a{1,1}.b1, a{1,1}.b2.... a{1,1}.b7 so a{1,1} contains 7 cells of size 3*204. how can i achieve this without for loop?
Many thanks for you help.
0 Commenti
Risposta accettata
Michael Haderlein
il 27 Apr 2015
If you really want to have the inside to be a struct, you can go with
c=cellfun(@(x) cell2struct(mat2cell(x,3*ones(7,1),204),{'b1','b2','b3','b4','b5','b6','b7'}),a,'uniform',false);
For sure, the {'b1'...'b7'} can be done nicer (ask if you need help with that).
Anyway, most likely it's better to keep the internal to be cells, then the upper code simplifies to
c=cellfun(@(x) mat2cell(x,3*ones(7,1),204),a,'uniform',false);
Più risposte (1)
Guillaume
il 27 Apr 2015
newa = cellfun(@(m) mat2cell(m, 3*one(1, 7), 204), a, 'UniformOutput', false)
Vedere anche
Categorie
Scopri di più su Structures 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!