Splitting Cell Arrays by Delimiter

16 views (last 30 days)
Lydia Wang
Lydia Wang on 14 Mar 2019
Edited: Stephen23 on 14 Mar 2019
So I have a large data set stored in a 4699x1 cell. Each row has a different number of string items separate by commas. Is there any way to count how many items there are in each row? For example, with these rows, I would like a 4699x1 cell that is 3,4,1,1,2,2,2,1,1,1,4,etc...Screen Shot 2019-03-14 at 5.37.53 PM.png

Accepted Answer

Star Strider
Star Strider on 14 Mar 2019
Try this:
s = {'qwerty,uiop'; 'asdf,ghjkl,zxcvb'};
for k1 = 1:size(s,1)
r(k1) = numel(strsplit(s{k1}, ','));
end
Out = r % View Results (Delete)
producing:
Out =
2 3
Experiment to get the result you want.

More Answers (1)

Stephen23
Stephen23 on 14 Mar 2019
Edited: Stephen23 on 14 Mar 2019
There is no need to split, just count the commas, e.g.:
>> s = {'AAAA,BBBB'; 'CCCC,DDDD,EEEE'; 'FFFF'};
>> n = 1+cellfun(@numel,strfind(s,','))
n =
2
3
1
or
>> n = 1+cellfun(@(v)nnz(v==','),s)
n =
2
3
1

Categories

Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!