find an ID that has two values for another variable

10 visualizaciones (últimos 30 días)
joseph Frank
joseph Frank el 23 de Ag. de 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

Respuesta aceptada

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

Más respuestas (1)

joseph Frank
joseph Frank el 23 de Ag. de 2013
No I want them both to exist the 1990 and 1996 . It is not an "or " but rather an also.
  2 comentarios
Iain
Iain el 23 de Ag. de 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 el 23 de Ag. de 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)))

Iniciar sesión para comentar.

Categorías

Más información sobre Dynamic System Models en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by