Identify gaps between data in column structure, and , for differences bigger than a defined value, find start and end index of the two values

Hi to everybody. The Question is rather confusing but i will explain it. I have a data structure(data_struct)with 100 trials organised in columns. Each trial has another structure within called Eye_Data.The first column in Eye_Data is the 'time'. The gaps between the values are usually 2 ms. Some are 4 ms. I am trying to identify the gaps bigger than 2 ms and plot them on a 2D graph. This is working ok. But if i am trying to plot on timeseries plot, i need to find the two values that have 4 ms between them, so i can declare the start and end of a timeseries event. Please help me in this matter. Thank you The simple code is shown below
%%DISPLAY BLINKS
data_struct = handles.data_struct;
Selected_Trials = handles.Selected_Trials;
for bli = data_struct(Selected_Trials).Eye_Data(:,1);
BLINK = diff(bli);
if BLINK>2;
axes(handles.MainWindow);
plot(BLINK,'-y');
else
str = sprintf('No Blinks on trial:%d',trial);
set(handles.text_display,'String',str);
end
end

 Accepted Answer

Do you mean you are trying to find the index to the positions where diff(bli) > 2?
If so, you should be able to use
find(diff(bli)>2)

3 Comments

Hi.Thank you for the quick reply.I managed to get the difference between the elements.Now i need to find the position/index of the terms that give a difference >2, for i need to declare them as the start and end of a timeseries event. I want to plot them as events on a timeseries plot.
Isn't the find() command exactly what you need, then?
find([2 2 2 2 2 2 4 2 2 2 2 2 4 2]>2)
is going to give
[7 13]
which tells you where the 4's are.
Sorry. I just realised that your answer is what i am looking for.
Thank you

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!