MATLAB: Add new row to String Array.

appendarrayloopsMATLABmatrixstring

Hi,
I have a Xx1 string array and I currently have something on the lines of:
strarray.full = [strarray.full;NEWDATA];
The code will add a new line each loop, and will re create the string array each time.
This works fine for smaller files, but the txt files I am reading are around 200,000 lines, so this takes around 20 minutes to run.
I am trying to get something like this to work to avoid having to re create the matrix each loop and make it alot faster.
strarray.full(end+1,1) = NEWDATA
I keep getting the Error "Unable to perform assignment becuse the indices on the left side are not compatible with the size of the right side"
The first loop results in an empty NEWDATA. I also do not believe I am allowed to share the code itself.
Thanks.

Best Answer

You can preallocate memory for the entire string array with
str = strings(200000,1);
and then fill row-by-row rather than appending. This will avoid the string array being copied to different memory locations as it fills, and should radically speed up the operation.