How to extract data from an array
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Peter Darrouj
el 11 de Mzo. de 2022
Respondida: Benjamin Thompson
el 11 de Mzo. de 2022
Hello. I have a signal with over 10mil data points. Whenever my signal crosses a certain threshhold i want to extract x numbers of point before and x numbers of point after it hit the threshhold.
IsEvent = true;
peakthreshhold = 120;
for i = 1:1:length(sig)
if (sig(i) >= peakthreshhold && IsEvent)
signal= (sig(i-20000):1:sig(i+50000));
disp(signal)
IsEvent = false;
end
end
so basically i wanted to extract 20000 points before it hit sig(i) to 50000 after it hit sig(i), so i get a new array with 70000 points extracted from sig(i).
If i run it now, i get 15 points
0 comentarios
Respuesta aceptada
Benjamin Thompson
el 11 de Mzo. de 2022
Use
signal= sig(i-20000:1:i+50000);
And you probably need checks in case i < 20000 or i > (end - 50000) as special cases.
0 comentarios
Más respuestas (1)
KSSV
el 11 de Mzo. de 2022
Let x be your signal and val be yout threshold.
val = 50000 ;
tol = 10^-3 ;
idx = find(abs(sig-val)<=tol) ; % this gives the index of your threshold
v1 = sig(1:idx) ;
v2 = sig(idx+1:end) ;
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!