# How to select array elements based on the elements of another array?

4 views (last 30 days)
Hey all! I have two double arrays "spiketimes" and "eyetimes". "spiketimes" is 354 elements long and each element is a time point, for eg (0.354 secs etc). Likewise, eyetimes also consists of timepoints but is ~4500 elements long. Now what I want to do is, based on the values of "spiketimes" , I need to select values of "eyetimes" with an interval of 0.02 secs on both sides, so that I pick all the values of eyetimes within that interval. Here's an example to beterr illustrate this
Say, the value I am looking for in "spiketimes" is 0.354 secs. So, In "eyetimes" I need all values between 0.354-0.02 and 0.354+0.02 secs. What might be the best way to go about this? Thanks!!

Stephen on 5 Jul 2021
idx = ismembertol(eyetimes,spiketimes,0.02, 'DataScale',1);
out = eyetimes(idx)
Kevin Akash Rajasekaran on 5 Jul 2021
Thanks! This is exactly what I was looking for!

Aparajith Raghuvir on 5 Jul 2021
Edited: Aparajith Raghuvir on 5 Jul 2021
I understand you're trying to get all the values in an array between two values.
mask = eyetimes(eyetimes > (0.354 - 0.02) & eyetimes < (0.354 + 0.02))
You may modify the above code to suit your requirement.
I hope this helps.
Kevin Akash Rajasekaran on 5 Jul 2021
This works too! Thanks for the reply!