Changing a row vector into a logical vector

5 vues (au cours des 30 derniers jours)
Kim
Kim le 5 Mai 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!

Réponses (1)

Michael Haderlein
Michael Haderlein le 5 Mai 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)

Catégories

En savoir plus sur Entering Commands dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by