Borrar filtros
Borrar filtros

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

3 visualizaciones (últimos 30 días)
ET
ET el 15 de Mayo de 2023
Comentada: ET el 15 de Mayo de 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)

Respuesta aceptada

Matt J
Matt J el 15 de Mayo de 2023
Editada: Matt J el 15 de Mayo de 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 comentarios
Matt J
Matt J el 15 de Mayo de 2023
Editada: Matt J el 15 de Mayo de 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 el 15 de Mayo de 2023
Why are the indices in logical form not enough?
I use the indices to epoch eeg data. Thanks Matt

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Discrete Data Plots en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by