trying to find peaks on a time series
Mostrar comentarios más antiguos
i'm trying to find peaks on some time series data but when i write
[pks,locs]=findpeaks(x)
i get the position of peak on locs. but i want to get the locs the same length i have x files or better if i have locs represented as 0 and 1 i can get the x values without a hassle. is there an elegant and simple way of dooing it, like the find function??
i also am trying this but obviously it takes time because of the loops, is there any simple way of dooing this in matlab.
newx=zeros(length(xn),1);
for p=1:length(xn);
for m=1:length(locs);
if locs(m)==p
newx(p)=1;
else
end;
end;
end;
end;
Respuesta aceptada
Más respuestas (1)
Wayne King
el 12 de Jun. de 2012
Then please compare:
x = [2 12 4 6 9 4 3 1 19 7];
[pks,locs] = findpeaks(x);
% here is your code
newx=zeros(length(x),1);
for p=1:length(x);
for m=1:length(locs);
if locs(m)==p
newx(p)=1;
else
end
end
end
Now what I answered:
newx2 = zeros(length(x),1);
newx2(locs) = 1;
Now
isequal(newx,newx2)
That returns a 1 for me.
Categorías
Más información sobre Descriptive Statistics en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!