MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Finding numbers over a value in a matrix/array

Asked by Brian on 14 Jun 2013

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.

Products

No products are associated with this question.

Answer by Image Analyst on 14 Jun 2013
Edited by 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)
```

Brian on 14 Jun 2013

Thanks, I'm really not getting this though.

I have a pre-defined matrix of real data, this is what I wrote:

```load('temp.mat')
disp(T);
```
```ranges High Value = 0
count Less than point3=sum(T(:) <= ranges High Value
```

but I'm doing something wrong clearly ...

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 on 15 Jun 2013

\Thanks a lot..I'm really new to matlab as you may have noticed.

Answer by 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 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?

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