Peak to Peak Distance Help

So I have a large data set of monthly averages which came in as a vector of 5000 or so points. I converted into 12x235 a matrix and then averaged each column to give me a vector of yearly averages for the data. The data resembles a sin curve and I need to find the distance between each peak. When I tried to use the peak to peak function, [pks,locs]=findpeaks(data,'minpeakdistance',3), it told me it could not compute it for type double. I tried converting to int and no luck. Please help.

3 Comments

What does:
>> which -all findpeaks
say in the command window? What happens if you say "doc findpeaks"?
Are you sure it says it "could not compute it for type double", or does it really say "
Error using findpeaks (line 43)
Input arguments must be 'double'.
"? Because that's the complete opposite of what you said.
[pks,locs]=findpeaks(x,'minpeakdistance',3)
Undefined function 'findpeaks' for input arguments of type 'double'.
I have no clue why it won't work for type double?

Sign in to comment.

Answers (2)

Leandro
Leandro on 22 Jan 2013
Edited: Leandro on 22 Jan 2013

0 votes

The findpeaks needs data to be a double variable, not ints.
data=double(data)
[pks,locs]=findpeaks(data,'minpeakdistance',3)

1 Comment

I have it in doubles. This is the error i get
Undefined function 'findpeaks' for input arguments of type 'double'.

Sign in to comment.

Greg Dionne
Greg Dionne on 6 Feb 2014
It looks like you don't have the Signal Processing Toolbox.
You get that error when you try accessing a function that doesn't exist.
Try:
>> [pks,locs]=completelyundefinedfunction(x,'minpeakdistance',3) Undefined function 'completelyundefinedfunction' for input arguments of type 'double'.

Asked:

on 22 Jan 2013

Answered:

on 6 Feb 2014

Community Treasure Hunt

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

Start Hunting!