Splitting Cell Arrays by Delimiter

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

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

Asked:

on 14 Mar 2019

Edited:

on 14 Mar 2019

Community Treasure Hunt

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

Start Hunting!