필터 지우기
필터 지우기

Add first element to a cell array

조회 수: 138 (최근 30일)
Luis Isaac
Luis Isaac 2015년 12월 18일
댓글: Josh 2024년 5월 4일
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,

채택된 답변

Adam
Adam 2015년 12월 18일
ArrCell = [ { new }, ArrCell ];
should work. I'm not at my machine with Matlab at the moment so can't double-check, but fairly sure that works.
  댓글 수: 5
Adam
Adam 2020년 3월 20일
ArrCell was a row array. You can't concatenate vertically a scalar and a 5-element row array.
Image Analyst
Image Analyst 2020년 3월 20일
new = magic(3) % A matrix
ArrCell={[1],[2],[3],[4],[5]} % A cell array
ArrCell = [ { new }, ArrCell ] % Adam uses comma
ArrCell2 = [ { new }; ArrCell ]; % Daniel uses semicolon
new =
8 1 6
3 5 7
4 9 2
ArrCell =
1×5 cell array
{[1]} {[2]} {[3]} {[4]} {[5]}
ArrCell =
1×6 cell array
{3×3 double} {[1]} {[2]} {[3]} {[4]} {[5]}
Error using vertcat
Dimensions of arrays being concatenated are not consistent.
Error in test1 (line 12)
ArrCell2 = [ { new }; ArrCell ];

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Image Analyst
Image Analyst 2015년 12월 18일
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
Luis Isaac
Luis Isaac 2015년 12월 18일
I using a cell array because ArrCell is composed of vectors and matrices of different sizes, i.e. size of [new] is different, or could be different, than [1]
Josh
Josh 2024년 5월 4일
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
Fletcher Garrison 2021년 2월 3일
편집: Fletcher Garrison 2021년 2월 3일
You can also use:
Arrcell = {1,2,3,4,5};
new = magic(5);
Arrcell = horzcat(new,Arrcell);

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by