Parse Error at '>' Issue

7 views (last 30 days)
Aniket Doke
Aniket Doke on 23 Mar 2017
Edited: Roger Stafford on 24 Mar 2017
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.

Answers (4)

Steven Lord
Steven Lord on 23 Mar 2017
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 Comments
Aniket Doke
Aniket Doke on 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 on 24 Mar 2017
Edited: Roger Stafford on 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

Sign in to comment.


dpb
dpb on 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);
  1 Comment
Aniket Doke
Aniket Doke on 24 Mar 2017
Okay. I will give it a try! Thanks!

Sign in to comment.


Roger Stafford
Roger Stafford on 23 Mar 2017
Also you cannot use the short-circuit && on vectors, only on scalars.

Walter Roberson
Walter Roberson on 24 Mar 2017
a = data(data(:,1) <900 & data(:,1) >700);
  1 Comment
Aniket Doke
Aniket Doke on 24 Mar 2017
Great. I got the correct answer with this! Thanks!

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!