trying to find peaks on a time series
이전 댓글 표시
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;
채택된 답변
추가 답변 (1개)
Wayne King
2012년 6월 12일
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.
카테고리
도움말 센터 및 File Exchange에서 Descriptive Statistics에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!