read the size of cell array with the same element

3 Ansichten (letzte 30 Tage)
xueqi
xueqi am 24 Mai 2017
Beantwortet: dpb am 24 Mai 2017
Hi I have a cell array looks like follows. How could I read the size of the cell array has the same element? In this case, I have 6 rows of 01.jpg so the first one is 6. I have 2 rows of 04.jpg so the second one is 2 and so forth. Thanks for your help!
%
01,jpg
01,jpg
01,jpg
01,jpg
01,jpg
01,jpg
04,jpg
04,jpg
05,jpg
05,jpg
...

Akzeptierte Antwort

Guillaume
Guillaume am 24 Mai 2017
Please use valid matlab syntax in your question, so it's not ambiguous. Assuming that your cell array is of the form:
c = {'01,jpg'
'01,jpg'
'01,jpg'
'01,jpg'
'01,jpg'
'01,jpg'
'04,jpg'
'04,jpg'
'05,jpg'
'05,jpg'}
This would work:
[~, ~, id] = unique(c, 'stable');
sequencelengths = diff(find(diff([-Inf; id; Inf])))

Weitere Antworten (2)

the cyclist
the cyclist am 24 Mai 2017
Here's one way:
C = {
'01,jpg';
'01,jpg';
'01,jpg';
'01,jpg';
'01,jpg';
'01,jpg';
'04,jpg';
'04,jpg';
'05,jpg';
'05,jpg';
}
[~,~,k] = unique(C);
C_counts = histcounts(k,[unique(k); Inf])

dpb
dpb am 24 Mai 2017
[u,iu]=unique(c{:},'rows');
n=histc(iu,1:length(u));

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by