How to use find for a vector without a loop?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
ARGY B
el 21 de Ag. de 2019
Comentada: ARGY B
el 21 de Ag. de 2019
I have the following script but doesn't work (properly)
V_dates = [datenum(2030,1,1) datenum(2050,1,1) datenum(2075,1,1) datenum(2100,1,1)]
index = find(vector_with_dates == V_dates(:))
where vector_with_dates (size: 1x5000) is a vector having dates in serial date number form.
Now I would like to find the indexes of the vector_with_dates where the 4 numbers stored in V_dates are equal.
The only way I can think and it works properly is within a loop like this:
for i=1:length(V_dates)
index(i) = find(vector_with_dates == V_dates(i))
end
Is there a way to avoid the loop?
Thank you
0 comentarios
Respuesta aceptada
AbioEngineer
el 21 de Ag. de 2019
Hi!
If you want to find all the locations in which vector_with_dates contains ANY of the dates in V_dates, use ismember
[tf,loc]=ismember(vector_with_dates,V_dates)
find(tf)
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!