breaking a column of strings in two different columns

2 ビュー (過去 30 日間)
antonet
antonet 2012 年 6 月 19 日
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?
  1 件のコメント
antonet
antonet 2012 年 6 月 19 日
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
Kevin Holst 2012 年 6 月 19 日
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
  1 件のコメント
antonet
antonet 2012 年 6 月 19 日
you are the best! It works!

サインインしてコメントする。

その他の回答 (1 件)

Thomas
Thomas 2012 年 6 月 19 日
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..
  1 件のコメント
antonet
antonet 2012 年 6 月 20 日
thank you very much Thomas!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by