how to extend a cell array?
71 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Nabhdeep Bansal
le 27 Avr 2015
Modifié(e) : Stephen23
le 30 Avr 2015
i have a 1D cell array . i wish to increase its size by adding zeros to its right . i think i can use pad array with LOC as 'b' but i dont know the synax. help me with this please.
0 commentaires
Réponse acceptée
Image Analyst
le 27 Avr 2015
Try this:
ca{1} = 'abc' % Put string in first cell.
% Now pad with cells that have a numerical zero in them.
for k = 2 : 15
ca{k} = 0;
end
4 commentaires
Image Analyst
le 30 Avr 2015
Yes, your way is faster and more "MATLAB-ish" which is why I voted for it. Though for only 15 cells you won't notice. My method took only 40 microseconds:
Elapsed time is 0.000040 seconds.
With a million elements to set it gets almost up to a second while your method stays short (around 15 microseconds).
Stephen23
le 30 Avr 2015
Modifié(e) : Stephen23
le 30 Avr 2015
Of course for small arrays it will not make much difference... but surely it is just as easy to learn good habits rather than to have to unlearn bad ones?
After all today's undergrad is tomorrows PhD candidate, and then it really will make a difference to their muon-path dataset analysis.
Thank you for the vote!
Plus de réponses (2)
Stephen23
le 27 Avr 2015
Modifié(e) : Stephen23
le 27 Avr 2015
>> ca{1} = 'abc'
>> ca(2:15) = {0}; % put whatever value you want in this scalar cell
Just one line of code and no loops are required to extend a cell array. Note that that curly brackets and parentheses are deliberate!
0 commentaires
Thorsten
le 27 Avr 2015
Sample cell
C{1} = 100;
C{2} = rand(2);
C{3} = 'a';
% add zeros up to cell 23
C{23} = 0;
z0{1} = 0;
C(logical(cellfun(@isempty, C))) = deal(z0);
1 commentaire
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!