Is the 'findpeaks' function available only in 2014b ?

2 次查看(过去 30 天)
I am getting this error "Undefined function 'findpeaks' for input arguments of type 'double' " while using 'findpeaks' in Matlab 2014a

采纳的回答

Mischa Kim
Mischa Kim 2015-2-17
编辑:Mischa Kim 2015-2-17
Harish, findpeaks is part of the Signal Processing Toolbox, which you might not have licensed/installed. To check if you do enter at the command prompt
>> which findpeaks
which should return something like
C:\Program Files\MATLAB\R2015a\toolbox\signal\signal\findpeaks.m
in case you have access to the toolbox.
  1 个评论
geotocho
geotocho 2017-8-10
Mischa I am having this same issue. My code runs on 2015b. When I moved to a different machine with 2014a I receive the same error as OP. I have the Signal Processing Toolbox. I validated this using the command which findpeaks.

请先登录,再进行评论。

更多回答(1 个)

geotocho
geotocho 2017-8-10
I beleive the issue you have, or may have resolved by now, is caused by the findpeaks input arguments. findpeaks has changed since MATLAB2014a. Currently findpeaks accepts a vector of indicies as the second argument for which [~,locs] is identified by. The 2014a version does not handle this index array as the second function argument. 2014a is looking for a string such as 'Tolerance' for the second input. 2014a findpeaks will output locs which may not precisely be the locs you want if you search only a portion of your signal for peaks.
To work around this and output the peak locs identified by 2014a I modified my code below:
% Find Peak Change in Covariance - Evaluated 99% Probability
% 2014b or later Version
[~,peakIx]=findpeaks(qCovAvg(100:end),Ix(100:end),'MinPeakHeight',q99);
% 2014a or Earlier Version
[~,peakIx] = findpeaks(qCovAvg(100:end),'MinPeakHeight',q99);
dumIx = Ix(100:end);
peakIx = dumIx(peakIx);
% Hope you find this helpful

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by