Finding Closest Data Point
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Krispy Scripts
el 25 de Oct. de 2016
Comentada: Image Analyst
el 26 de Oct. de 2016
I have one matrix with data in the first column and time stamps in the second column (datamatrix.mat). The next matrix contains spiketimes (spiketimematrix.mat). I want to get the data point in the first column of first matrix that is the closest time point corresponding to the spike times in spiketimematrix.mat. For example, the first spiketime is 166.1670, which corresponds to the closet time point of 166.1696 and corresponds with the data point 2.5281.
0 comentarios
Respuesta aceptada
Image Analyst
el 25 de Oct. de 2016
Try something like
% Find all time differences:
timeDiffs = abs(timeStamps - spikeTimes);
% Find out which has the smallest difference:
[minTimeDiff, indexOfMin] = min(timeDiffs);
% Get the value from column 1.
result = dataColumn1(indexOfMin)
5 comentarios
Image Analyst
el 26 de Oct. de 2016
Sorry - that's what I get for tossing something off the top of my head and not actually testing it. Ignore that code (I'll delete it) and use this instead:
numPoints1 = 6;
timeStamps = rand(numPoints1, 1) % Sample data.
numPoints2 = 3;
spikeTimes = rand(numPoints2, 1) % Sample data.
t1 = [timeStamps, zeros(length(timeStamps), 1)];
t2 = [spikeTimes, zeros(length(spikeTimes), 1)];
distances = pdist2(t1, t2)
minDistance = min(distances(distances>0))
[row, column] = find(distances == minDistance)
fprintf('The minimum time difference is %f and goes between\n timeStamp(%d) = %f, and\n spikeTimes(%d) = %f\n',...
minDistance, row, timeStamps(row), column, spikeTimes(column));
Más respuestas (1)
Roger Stafford
el 25 de Oct. de 2016
I recommend you use the ‘pdist2’ function using the “Smallest” option. It is described at:
https://www.mathworks.com/help/stats/pdist2.html
0 comentarios
Ver también
Categorías
Más información sobre Electrophysiology 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!