Finding data points of two different matrices based off of time
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Krispy Scripts
am 25 Okt. 2016
Kommentiert: Krispy Scripts
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. I have tried using the following code:
for k=1:length(spiketimesmatrix)
dataout(k)=datamatrix(find(spiketimesmatrix>=datamatrix(:,2),1);
end
I keep getting the first data point as the entire dataoutput.
Not sure if this is clear enough.
Akzeptierte Antwort
Chris Dischner
am 25 Okt. 2016
Why not use a difference?
First matrix, a, second matrix b:
for i = 1:length(a)
[m,idx] = min(abs(a(i,2))-b(:,1));
minVal(i) = a(idx,1);
end
0 Kommentare
Weitere Antworten (1)
Walter Roberson
am 25 Okt. 2016
dataout(k)=datamatrix(find(spiketimesmatrix(k)>=datamatrix(:,2),1);
2 Kommentare
Siehe auch
Kategorien
Mehr zu Workspace Variables and MAT-Files 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!