Quick search for local extremes
The new function extr.m analyses the given real vector carrying a sequence of samples to be analyzed. At the end, it returns a cell array of extreme positions in the sequence. The cell array consists of two cells only. The first one contains the logical vector of maxima and the other the similar one of minima. Should more equal values be present in adjacent elements of the vector, only one position is returned. The attention is also paid on low memory requirements and a speed of the procedure.
Forms of calls:
L = extr(x); % Find true local extremes
% ..... x vector containing a sequence to be analyzed,
% ..... L cell array {L(1), L(2)}, where
% ..... L(1) is logical vector of positions of maxima,
% ..... L(2) is logical vector of positions of minima.
There are also circumstances, when the processing time is critical for a user, while the exact true extrems are of less priority. In that case he may use:
L = extr(c,0); % Find true and false local extrems.
False extrems form pairs of equal value minimum-maximum laying somewhere on the trend of the sequence. They are not extrems, but they do not harm in certain cases of consecutive processing.
Examples:
demoXtr; % See the program and figure demoXtr.jpg
L = extr(x);
y = x(L(1)|L(2)); % y is a vector of all extremes
clear, x=rand(1e7,1)-.5; tic, L=extr(x); toc
Elapsed time is 2.974584 seconds. % (3GHz PC, Windows XP Prof.)
clear, x=rand(1e7,1)-.5; tic, L=extr(x,0); toc
Elapsed time is 1.392926 seconds. % (3GHz PC, Windows XP Prof.)
Hopefully, the function is error-free. If not, please, let me know.
引用格式
Miroslav Balda (2024). Quick search for local extremes (https://www.mathworks.com/matlabcentral/fileexchange/10272-quick-search-for-local-extremes), MATLAB Central File Exchange. 检索来源 .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!版本 | 已发布 | 发行说明 | |
---|---|---|---|
1.0.0.0 | Smaller figure |