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
0 个评论
采纳的回答
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
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
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
0 个评论
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!