How to count in arrays?

1 vue (au cours des 30 derniers jours)
Evelyn
Evelyn le 17 Nov 2014
Commenté : John D'Errico le 17 Nov 2014
Let's say I have two arrays
apple = [1 2 3 4 5 6 7 8];
pear = [2 3 1 2 7 6 1 8];
I want to compare these arrays and count how many items in pear are bigger than the item at the same place in apple. How would I do this?
  1 commentaire
the cyclist
the cyclist le 17 Nov 2014
Modifié(e) : the cyclist le 17 Nov 2014
Sounds like homework. Here are a few hints:
  • There is "greater than" operator in MATLAB, which will operate on vectors
  • There is also an operator that will sum over a vector
  • There is a docsearch command that will search the documentation

Connectez-vous pour commenter.

Réponse acceptée

Manoj
Manoj le 17 Nov 2014
x=sum(pear>apple);
  1 commentaire
John D'Errico
John D'Errico le 17 Nov 2014
While this correct, I recall that it will be slightly faster to use nnz instead of sum.
x = nnz(pear > apple);
The difference will be small unless the arrays are significantly large.
pear = round(rand(1,1e7)*10);
apple = round(rand(1,1e7)*10);
timeit(@() sum(pear > apple))
ans =
0.03888
timeit(@() nnz(pear > apple))
ans =
0.023221

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by