find an ID that has two values for another variable

2 vues (au cours des 30 derniers jours)
joseph Frank
joseph Frank le 23 Août 2013
Hi, ID and fyear are vectors of the same size year(x00-1)=1996;year(x00-7)=1990 I want to find the ID that is equal to ID(i) but has for fyear values of 1990 and 1996. Initially I wrote:
x0=find(ID=ID(i) & fyear==year(x00-1) & fyear==year(x00-7))) but x0 was always empty and I figured out that the code was wrong because when the logical for fyear=1990 is 1 it is 0 for fyear=1996 and vice versa. How can I write a code to say I want the ID which is equal to ID(i) and that ID has a fyear values of 1990 and 1996

Réponse acceptée

Iain
Iain le 23 Août 2013
x0 = find(ID = ID(i) & (fyear == year(x00-1) | fyear==year(x00-7)))
Note that | is "pipe", not capital i, or lowercase L.

Plus de réponses (1)

joseph Frank
joseph Frank le 23 Août 2013
No I want them both to exist the 1990 and 1996 . It is not an "or " but rather an also.
  2 commentaires
Iain
Iain le 23 Août 2013
Try the code I gave you. The year cannot be BOTH, it must be one and/or the other.
The logic gate "or", is and/or, it is not exlusively one or the other [exclusively one or the other is an "exclusive or"].
Iain
Iain le 23 Août 2013
Actually, re-reading your code, are you actually trying to get the ID values that exist in both years? - A very different question.
intersect(ID(fyear == year(x00-1)),ID(fyear == year(x00-7)))

Connectez-vous pour commenter.

Catégories

En savoir plus sur Financial Toolbox dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by