How to split a cell array?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello!
Be
Z={'1.1 2.1 3.2 3.3 5.5 5.4'; '3 4 5 10 11 56'};
a 2*1 cell array.How can I split Z into a cell array with 2x6 cells? Notice that Z is composed by numbers.
Thanks a lot.
0 commentaires
Réponse acceptée
Stephen23
le 25 Avr 2016
Modifié(e) : Stephen23
le 25 Avr 2016
Option One: Convert to Numeric
>> mat = [sscanf(Z{1},'%f'),sscanf(Z{2},'%f')].'
mat =
1.1000 2.1000 3.2000 3.3000 5.5000 5.4000
3.0000 4.0000 5.0000 10.0000 11.0000 56.0000
Best would be to leave it as a numeric array... however if you really need a cell array of numeric scalars, then use num2cell:
num2cell(mat)
Option Two: Keep as String
>> tmp = regexp(Z,'\S+','match');
>> tmp = vertcat(tmp{:})
tmp =
'1.1' '2.1' '3.2' '3.3' '5.5' '5.4'
'3' '4' '5' '10' '11' '56'
4 commentaires
Stephen23
le 26 Avr 2016
Modifié(e) : Stephen23
le 26 Avr 2016
@angelavtc: That example with numeric vectors inside a cell array cannot be trivially converted to a single array with each numeric element in its own cell, because you have different number of elements in each vector. You could try experimenting with these FEX submissions:
inp = {[...],[...]}
out = padcat(inp{:})
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Cell Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!