findInRange
When constructing peri-event time histograms and raster-plots it's often necessary to repeatedly do the following operation:
find(X > T1 & X <= T2)
where X is a vector of the times of some measurements (eg a spike train) and T1 and T2 are the left and right edges of an event-aligned window (eg stimulus onset).
While find() is generally fast, it can get quite slow for large numbers of events/trials because it is necessary to loop over the vector of alignment-events. findInRange() uses mex to achieve much greater speeds:
X = rand(1e6,1)*1e6;
T1 = rand(1e3,1)*1e3;
T2 = T1 + 5;
tic;
V1 = findInRange(X, T1, T2);
time1 = toc;
tic;
for i=1:length(T1)
V2{i} = X(X > T1(i) & X <= T2(i));
end
time2 = toc;
time2/time1
ans =
91.3441
Zitieren als
Joseph O'Doherty (2026). findInRange (https://de.mathworks.com/matlabcentral/fileexchange/47864-findinrange), MATLAB Central File Exchange. Abgerufen.
Kompatibilität der MATLAB-Version
Plattform-Kompatibilität
Windows macOS LinuxKategorien
Tags
Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
| Version | Veröffentlicht | Versionshinweise | |
|---|---|---|---|
| 1.4.0.0 | Don't crash when X is a 0-by-N matrix. |
||
| 1.3.0.0 | Actually upload the files this time. :) |
||
| 1.2.0.0 | . |
||
| 1.1.0.0 | Bugfix for the case of X being unsorted. |
||
| 1.0.0.0 |
