Parse Error at '>' Issue

I have to select (and count) particular numbers from a series. The selection should have numbers less than 900 but more than 700. I was getting a parse error at '>' with below code. There is only 1 column.
a=data(data(:,1) <900 && >700);
n=numel(a)
Please let me know how can I get through this.

Risposte (4)

Steven Lord
Steven Lord il 23 Mar 2017

0 voti

You need to explicitly write what needs to be greater than 700 for the condition to be satisfied. MATLAB does not assume that you meant "data(:, 1) > 700" in that indexing expression.

2 Commenti

Aniket Doke
Aniket Doke il 24 Mar 2017
The condition for <900 gives me correct answer. When I add one more constraint (>700), it gives me an error.
Roger Stafford
Roger Stafford il 24 Mar 2017
Modificato: Roger Stafford il 24 Mar 2017
@Aniket Doke. I think you still don’t understand. You can’t write:
A<900 & >700
That is incorrect syntax in matlab. You must write:
A<900 & A>700

Accedi per commentare.

dpb
dpb il 23 Mar 2017
I use a utility "syntactic sugar" for such purposes...
a=isinside(a,700,900);
where
function flg=isinside(x,lo,hi)
% returns T for values within range of inputs
% SYNTAX:
% [log] = isinside(x,lo,hi)
% returns T for x between lo and hi values, exclusive
flg= (x>lo) & (x<hi);
Roger Stafford
Roger Stafford il 23 Mar 2017

0 voti

Also you cannot use the short-circuit && on vectors, only on scalars.
Walter Roberson
Walter Roberson il 24 Mar 2017
a = data(data(:,1) <900 & data(:,1) >700);

1 Commento

Aniket Doke
Aniket Doke il 24 Mar 2017
Great. I got the correct answer with this! Thanks!

Accedi per commentare.

Richiesto:

il 23 Mar 2017

Modificato:

il 24 Mar 2017

Community Treasure Hunt

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

Start Hunting!

Translated by