Filter löschen
Filter löschen

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

3 Ansichten (letzte 30 Tage)
ET
ET am 15 Mai 2023
Kommentiert: ET am 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)

Akzeptierte Antwort

Matt J
Matt J am 15 Mai 2023
Bearbeitet: Matt J am 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 Kommentare
Matt J
Matt J am 15 Mai 2023
Bearbeitet: Matt J am 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 am 15 Mai 2023
Why are the indices in logical form not enough?
I use the indices to epoch eeg data. Thanks Matt

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Discrete Data Plots finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by