How to count in arrays?

1 回表示 (過去 30 日間)
Evelyn
Evelyn 2014 年 11 月 17 日
コメント済み: John D'Errico 2014 年 11 月 17 日
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 件のコメント
the cyclist
the cyclist 2014 年 11 月 17 日
編集済み: the cyclist 2014 年 11 月 17 日
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

サインインしてコメントする。

採用された回答

Manoj
Manoj 2014 年 11 月 17 日
x=sum(pear>apple);
  1 件のコメント
John D'Errico
John D'Errico 2014 年 11 月 17 日
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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by