Effacer les filtres
Effacer les filtres

How do I exact all the indexes with a certain value?

2 vues (au cours des 30 derniers jours)
ET
ET le 15 Mai 2023
Commenté : ET le 15 Mai 2023
I wrote a loop that scan through the channel that contains all the trigger markers and I set those with intensity >3 to 1, else =0. Now I have this variable (marker) that contains the trigger markers at the intensity of 1. I would like to get the indexes of marker with an intensity of 1. How should I do that? Thanks,
marker = zeros(size(Inpt_RZ2_chn002.dat));
for mi = 1:length(Inpt_RZ2_chn002.dat)-1
if Inpt_RZ2_chn002.dat(mi) > 3
marker(mi) = 1;
else
marker(mi) = 0;
end
end
plot(marker)

Réponse acceptée

Matt J
Matt J le 15 Mai 2023
Modifié(e) : Matt J le 15 Mai 2023
Don't use a loop. Just do,
marker = Inpt_RZ2_chn002.dat > 3;
The logical vector marker already functions as an index vector, e.g.,
greaterThanThree = Inpt_RZ2_chn002.dat(marker)
  3 commentaires
Matt J
Matt J le 15 Mai 2023
Modifié(e) : Matt J le 15 Mai 2023
How do I get the indexes of all the ones into a new variable with only all the indexes of ones.
Why are the indices in logical form not enough?
x=(1:5)*10
x = 1×5
10 20 30 40 50
marker=(x>30)
marker = 1×5 logical array
0 0 0 1 1
x(marker)
ans = 1×2
40 50
If you really do need numeric indices, use find()
find(marker)
ans = 1×2
4 5
ET
ET le 15 Mai 2023
Why are the indices in logical form not enough?
I use the indices to epoch eeg data. Thanks Matt

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Discrete Data Plots dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by