MATLAB Answers


Creating cell array of strings in a loop

Asked by Craig
on 4 Dec 2012

Hi all,

I have a few lines as such:

timeStrings = cell(1,entries_per_variable);  
for o = 1:1:entries_per_variable
timeStrings{o,1} = [num2str(TimeValue(3,o),'%02i'),'/', num2str(TimeValue(2,o),'%02i'),'/', num2str(TimeValue(1,o),'%04i'),...
' ',num2str(TimeValue(4,o),'%02i'),':',num2str(TimeValue(5,o),'%02i'),':',num2str(TimeValue(6,o),'%02i')]; %this be a column vector

It basically converts some values in TimeValue to strings, adds some spaces and slashes using the [] string catenation method and puts them in a new cell array.

I'm running out of memory less than 50 entries in! As you can see the memory is preallocated so I can't fathom why.

Best regards,

Craig B

  1 Comment

... you pre-allocate a 1xN array, but intend to fill a Nx1 array, ending up filling a NxN array ... (This should not give you memory problems though)

I also suggest you take a look at SPRINTF.

1 Answer

Answer by Craig
on 4 Dec 2012
 Accepted answer

Ok I got the dimensions of the preallocation wrong. Should have been timeStrings = cell(entries_per_variable,1);

Best regards,



Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!