MATLAB: Cell and String manipulation

cell arraysstrings

Hi, I have A= <900×1> cell The cell contents are as follows:
AA
BB
CC
AA
BB
CC
.
.
.
1) I need to separate the above into blocks of 300. i.e. change the first 300 into the following:
AA1
BB1
CC1
...
Then the next 300 to AA2 BB2 CC2
And the following 300 to
AA3
BB3
CC3
2)So now I have A = {AA1} {BB1} {CC1} {AA1} {BB1} {CC1}… {AA2} {BB2} {CC2} i.e. I have sets of AA*, BB*, CC* that repeat. The first 300 have a suffix of 1, and so on..
I have thus 300 CCs. I have another variable h = 300×1 which is made up of ones and zeros.
h = [ 1 0 1 ...]
i.e. every CC in A has a corresponding h
I need to do the following
if h = 1, then the set (AA*,BB*,CC*) preceding the corresponding CC become AA1c, BB1c, CC1c.
if h = 0, then the set preceding the corresponding CC become AA1ic, BB1ic, CC1ic
So A = {AA1c} {BB1c} {CC1c} {AA1ic} {BB1ic} {CC1ic}… {AA2c} {BB2c} {CC2c}
I am not sure if I managed to convey the issue here so please let me know if I hav'nt and I will try to better explain.
Thank you.

Best Answer

a0 = cellstr(('1':'3')');
a1 = {'';'i'};
[i1,i2]=ndgrid(1:3,h+1);
out = strcat(A,a0(i1(:)),a1(i2(:)),'c');