Finding numbers over a value in a matrix/array

3 views (last 30 days)
Hi, I have a 365x10 matrix/array? not sure what it would be called need to find the amount of numbers in a certain range/below a certain value eg 0.
Thanks for any help.

Accepted Answer

Image Analyst
Image Analyst on 14 Jun 2013
Edited: Image Analyst on 14 Jun 2013
Try this:
T = rand(365,10); % Some random data
% Define the range as [0, 0.2].
rangesLowValue = 0;
rangesHighValue = 0.2;
% Count the number of values in the range:
countLessThanPoint3 = sum(T(:) >= rangesLowValue & T(:)<rangesHighValue)
  3 Comments
Image Analyst
Image Analyst on 14 Jun 2013
Yes. You can't write variable names with spaces in them. Plus I don't know why you didn't just do it like I said. Explain what this means " in a certain range/below a certain value eg 0." Do you mean that the limits of the entire range (both the low and high values) are less than 0? Like the low value = -999 and the high value is -1?
Brian
Brian on 15 Jun 2013
\Thanks a lot..I'm really new to matlab as you may have noticed.

Sign in to comment.

More Answers (2)

Andrei Bobrov
Andrei Bobrov on 14 Jun 2013
A = rand(20,10);
A(A < .3) = -A(A < .3); % your array
out = nnz(A < 0);
  1 Comment
Brian
Brian on 14 Jun 2013
Hi thanks,
when I use the following I get the answer for the first part, the numbers less than 0, but I'm doing something wrong in the second, it says '??? Index exceeds matrix dimensions.' what do I do?

Sign in to comment.


Azzi Abdelmalek
Azzi Abdelmalek on 14 Jun 2013
range=2
idx=find(abs(yourarray)<range)

Community Treasure Hunt

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

Start Hunting!