Newbie question - converting a vector into a cellarray of vectors

I have a vector X and want a cell array C containing N copies of that vector. How do I do that?
Here is how I am doing it now:
X = 1:5; N = 3;
C = mat2cell( repmat( X, N, 1 ), ones( N, 1 ), size( X, 2 ) );
This just feels like something that should be a primitive - converting back & frth betweenmatrices and cellarrays in different ways.

 Accepted Answer

% To cell
C = repmat({X},N,1);
% To mat
cell2mat(C)
cat(1,C{:})

More Answers (1)

More efficient, because shared data copies are created:
C = cell(N, 1);
C(:) = {X};

2 Comments

C(1:N) = deal({X}); Same behaviour?
@Oleg: Same behaviour and equivalent speed.

Sign in to comment.

Categories

Find more on Convert Image Type 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!