Filter löschen
Filter löschen

how to count more than 1 element in cell array?

2 Ansichten (letzte 30 Tage)
alice
alice am 22 Jun. 2012
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 Kommentar
Walter Roberson
Walter Roberson am 22 Jun. 2012
[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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 22 Jun. 2012
Can so?
out = sum(cellfun(@(x)all(ismember([2 5],x)),D));
  2 Kommentare
Ryan G
Ryan G am 22 Jun. 2012
Just beat me to it!
alice
alice am 22 Jun. 2012
thanks
it's work

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Ryan G
Ryan G am 22 Jun. 2012
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 am 22 Jun. 2012
Oh thank you so much
Both answers are work!

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by