how to count more than 1 element in cell array?

2 次查看(过去 30 天)
Hello
I have cell array data example. D = {[1 2 5];[1 2 4 6];[2 4 5 6];[2 5];[1 4 6]}
the answer is 3
I want to know how to calculate a frequency of [2 5] which occurs in D by not using loop.
thank you
  1 个评论
Walter Roberson
Walter Roberson 2012-6-22
[2 5] must be the only element? 2 and 5 must be adjacent? In that order or order is irrelevant?
Some of these possibilities I don't think can be done without at least an implicit loop using one of the *fun() functions.

请先登录,再进行评论。

采纳的回答

Andrei Bobrov
Andrei Bobrov 2012-6-22
Can so?
out = sum(cellfun(@(x)all(ismember([2 5],x)),D));

更多回答(2 个)

Ryan G
Ryan G 2012-6-22
I think this may be close to what you are looking for.
freqElements = sum(cellfun(@(x) mean(ismember([2 5],x)) == 1,D));

alice
alice 2012-6-22
Oh thank you so much
Both answers are work!

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by