フィルターのクリア

Finding data points of two different matrices based off of time

1 回表示 (過去 30 日間)
Krispy Scripts
Krispy Scripts 2016 年 10 月 25 日
コメント済み: Krispy Scripts 2016 年 10 月 26 日
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.
  1 件のコメント
Krispy Scripts
Krispy Scripts 2016 年 10 月 26 日
I am getting the same value repeatedly the size of the spikematrix and I am not sure why.

サインインしてコメントする。

採用された回答

Chris Dischner
Chris Dischner 2016 年 10 月 25 日
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

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 10 月 25 日
dataout(k)=datamatrix(find(spiketimesmatrix(k)>=datamatrix(:,2),1);
  2 件のコメント
Krispy Scripts
Krispy Scripts 2016 年 10 月 26 日
My data output is the first value repeated over and over again? I am guessing this is something I am doing incorrectly?
Krispy Scripts
Krispy Scripts 2016 年 10 月 26 日
Actually its not getting the first value, I am not sure what value it is getting, but it is getting it repeatedly over and over again

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeWorkspace Variables and MAT-Files についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by