# Create a Cell Array of Vectors populated with ones

24 views (last 30 days)
Leonardo Venturelli on 15 May 2019
Edited: Leonardo Venturelli on 23 May 2019
Hi all,
I 'd like to create a cell array made of x columns and y rows (in my case 10 and 3, respectively), where each x,y position contains a vector of 1x200 NaN. I'd like to find something smarter and nicer than just something like this:
res={nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) ;nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200); nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200) nan(1,200)};
Thank you so much to the community.
Leonardo
Guillaume on 15 May 2019
If all the vectors in the cell array are the same size, why not use a matrix instead of a cell array. It will make all subsequent operations much easier.
I.e. create a 10x3x200 matrix instead:
res = nan(10, 3, 200);

Jos (10584) on 15 May 2019
repmat also works for cell arrays
C = repmat({nan(1, 200)}, 10, 3)
Leonardo Venturelli on 15 May 2019
Thank you so much Jos,
I hadn't tried the repmat function to solve this, but it actually works perfectly.