Finding Closest Data Point
    6 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Krispy Scripts
 am 25 Okt. 2016
  
    
    
    
    
    Kommentiert: Image Analyst
      
      
 am 26 Okt. 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 Kommentare
Akzeptierte Antwort
  Image Analyst
      
      
 am 25 Okt. 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 Kommentare
  Image Analyst
      
      
 am 26 Okt. 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));
Weitere Antworten (1)
  Roger Stafford
      
      
 am 25 Okt. 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 Kommentare
Siehe auch
Kategorien
				Mehr zu Statistics and Machine Learning Toolbox finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


