Add first element to a cell array
Show older comments
Dear,
I would like to add a new element in the first position in an cell array For example if ArrCell={[1],[2],[3],[4],[5]} is the existing cell and [new] is a matrix. I would like to get ArrCell={[new],[1],[2],[3],[4],[5]}
Of course, I can get this result using a temporal cell array and looping over all the elements of the existing one, but the quesion is if there an efficient way to get this result
Thanks in advance,
Accepted Answer
More Answers (3)
Image Analyst
on 18 Dec 2015
But the big question is why are you even using a cell array for that instead of a simple numerical array. Cell arrays are complicated and use a huge amount of overhead. From what you've shown there is no reason to use one. I recommend this instead
Arr = [1,2,3,4,5];
Arr = [new, 1,2,3,4,5]
2 Comments
Luis Isaac
on 18 Dec 2015
Josh
on 4 May 2024
appreciate this nudge in a more efficient direction, i fallback on cells arrays out of habit and ease but switching over to numerical arrays where possible...i make animations and cells help when image sizes are changing at least but seem uneccessary when image size is fixed
Fletcher Garrison
on 3 Feb 2021
Edited: Fletcher Garrison
on 3 Feb 2021
You can also use:
Arrcell = {1,2,3,4,5};
new = magic(5);
Arrcell = horzcat(new,Arrcell);
For future people looking this up:
testCell = {"one", 2, 10, "llama"}
testCell = {"newInput", testCell{:}}
1 Comment
I stand corrected by MATLAB autofix. Apparently this is faster.
testCell ={"one", 2, 10, "llama"}
testCell = [{"newInput"}, testCell(:).']
Categories
Find more on Logical 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!