How to count in arrays?

1 Ansicht (letzte 30 Tage)
Evelyn
Evelyn am 17 Nov. 2014
Kommentiert: John D'Errico am 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 Kommentar
the cyclist
the cyclist am 17 Nov. 2014
Bearbeitet: the cyclist am 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Manoj
Manoj am 17 Nov. 2014
x=sum(pear>apple);
  1 Kommentar
John D'Errico
John D'Errico am 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

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