# breaking a column of strings in two different columns

1 view (last 30 days)
antonet on 19 Jun 2012
Dear all,
Inside the workspace I have the following column in cell format
Column 1
AR021108'
'AW301108'
'EW281208'
'RT250109'
'RY220209'
I was trying to break this column in two other where the first column will contain the first two elements of each of these string variables and the second one will contain the dates as follows
Column1 column 2
AR 02/11/08
AW 30/11/08
EW 28/12/08
RT 25/01/09
RY 22/02/09
Any suggestions?
antonet on 19 Jun 2012
I used strtok(jji,'0 1 2 3 6 7 8 9'); wherre jji is the name of the column and i managed to create the first colum. The second column has the form
021108
301108
281208
250109
220209
but my goal is to have
02/11/08
30/11/08
28/12/08
and so forh. Thank you

Kevin Holst on 19 Jun 2012
It appears that you can't really do matrix operations on cell arrays like:
mycell{:,2} = mycell{:,1}(3:end);
So here's what I've got for you. It's probably not the most elegant solution, but it works...
for i = 1:length(mycell)
mycell{i,2} = [mycell{i,1}(3:4) '/' mycell{i,1}(5:6) '/' mycell{i,1}(7:8)];
mycell{i,1} = mycell{i,1}(1:2);
end
antonet on 19 Jun 2012
you are the best! It works!

Thomas on 19 Jun 2012
a={'AR021108'
'AW301108'
'EW281208'
'RT250109'
'RY220209'};
ii=cellfun(@(x) x(1:2),a, 'UniformOutput', false);
jj=cellfun(@(x) [x(3:4) '/' x(5:6) '/' x(7:8)], a, 'UniformOutput', false);
out=[ii jj]
another way without loops..
antonet on 20 Jun 2012
thank you very much Thomas!