changing the cell values into normal columns

hello all, i have string data which contains 3groups in one cell how i can change into normal array i mean each character with one column. for instance
Data={'020';'1014';,000'};
how i can change those into each value in one column except 1014 which i want to store as 1 for one column and 0 for one column but 14 in one column as pair.
help me for solving this problem.

2 Kommentare

Can you post the expected result?
Mohamuud hassan
Mohamuud hassan am 15 Mai 2015
Bearbeitet: Mohamuud hassan am 15 Mai 2015
thank you Abdelmalik. the expected result will be
data=[0;2;0;1;0;14;0;0;0];
thank you

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Stephen23
Stephen23 am 15 Mai 2015
Bearbeitet: Stephen23 am 15 Mai 2015

1 Stimme

A simple one-line solution using sscanf inside of cellfun and cell2mat:
>> Data={'020';'1014';'000'};
>> cell2mat(cellfun(@(s)sscanf(s,'%1f%1f%f'),Data, 'UniformOutput',false))
ans =
0
2
0
1
0
14
0
0
0
Note the format string used in sscanf: the %1f token parses just one character, thus allowing the automatic parsing of the first two characters individually.

Weitere Antworten (2)

Guillaume
Guillaume am 15 Mai 2015

1 Stimme

One possible way would be to use a regular expression. Assuming that any overspill digit ends up in the third column:
Data={'020';'1014';'000'};
datasplit = regexp(Data, '(\d)(\d)(\d+)', 'tokens', 'once'); %split into three tokens, the first two just one digit.
datasplit = vertcat(datasplit{:}); %merge all rows into one cell array
newdata = cellfun(@str2double, datasplit) %and convert to numeric
Azzi Abdelmalek
Azzi Abdelmalek am 15 Mai 2015

0 Stimmen

Data={'020';'1014';,'000'}
idx=~strcmp(Data,'1014')
ix=~idx
out=cell(numel(Data),3)
out(idx,1)=cellfun(@(x) x(1),Data(idx),'un',0)
out(idx,2)=cellfun(@(x) x(2),Data(idx),'un',0)
out(idx,3)=cellfun(@(x) x(3),Data(idx),'un',0)
out(ix,1)=cellfun(@(x) x(1),Data(ix),'un',0)
out(ix,2)=cellfun(@(x) x(2),Data(ix),'un',0)
out(ix,3)=cellfun(@(x) x(3:4),Data(ix),'un',0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by