# trying to find peaks on a time series

20 Ansichten (letzte 30 Tage)
DuckDuck am 11 Jun. 2012
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;
##### 2 Kommentare1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
DuckDuck am 11 Jun. 2012
look at my code, i want to know if there is a better way of writing that code, because loops take a long time in matlab

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Wayne King am 11 Jun. 2012
I'm assuming that xn in your loop above is the signal. You don't show us where xn comes from and it's not used in your call to findpeaks(). In your call to findpeaks, you use x. So If that is the case, then you don't need a loop.
newx = zeros(size(x));
newx(locs) = 1;
Does the same thing as your loop.
##### 1 KommentarKeine anzeigenKeine ausblenden
DuckDuck am 11 Jun. 2012
yeah you are right, basically xn is s x.
no it does not, i tried and it did not.

Melden Sie sich an, um zu kommentieren.

### Weitere Antworten (1)

Wayne King am 12 Jun. 2012
x = [2 12 4 6 9 4 3 1 19 7];
[pks,locs] = findpeaks(x);
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
newx2 = zeros(length(x),1);
newx2(locs) = 1;
Now
isequal(newx,newx2)
That returns a 1 for me.
##### 0 Kommentare-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Kategorien

Find more on Descriptive Statistics in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by