Parse Error at '>' Issue
Afficher commentaires plus anciens
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.
Réponses (4)
Steven Lord
le 23 Mar 2017
0 votes
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 commentaires
Aniket Doke
le 24 Mar 2017
Roger Stafford
le 24 Mar 2017
Modifié(e) : Roger Stafford
le 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
dpb
le 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 commentaire
Aniket Doke
le 24 Mar 2017
Roger Stafford
le 23 Mar 2017
0 votes
Also you cannot use the short-circuit && on vectors, only on scalars.
1 commentaire
Aniket Doke
le 24 Mar 2017
Walter Roberson
le 24 Mar 2017
a = data(data(:,1) <900 & data(:,1) >700);
1 commentaire
Aniket Doke
le 24 Mar 2017
Catégories
En savoir plus sur Time Series Collections dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!