MATLAB Answers

Kim
0

Changing a row vector into a logical vector

Asked by Kim
on 5 May 2015
Latest activity Commented on by Purushottama Rao on 5 May 2015
I have row vectors representing the appearance of a stimulus. The stimuli are logged as a square wave such that when the stimulus is present the vector elements change values until it disappears. I also have a time vector with the same number of elements. I would like to change the stimulus vector into a vector of 1s and 0s such that there is a 1 for the time the stimulus is present, and zero otherwise. If possible I'd like to index it to the time vector so that I have the time the stimulus is present. Of course, there may be a better way to achieve the goal. Please help. I've spent so many hours on such a simple problem! Thank you!

  0 Comments

Sign in to comment.

1 Answer

Answer by Michael Haderlein on 5 May 2015

If s is your stimulus array and t your time array and, let's say a value of s larger than 0.5 indicates this stimulus:
s_logical=s>0.5;
s_stimulus_on=s(s_logical);
t_stimulus_on=t(s_logical);
plot(t,s,t_stimulus_on,s_stimulus_on)

  1 Comment

I had the same answer..

Sign in to comment.