Azzera filtri
Azzera filtri

islocalmax dont find the first maximum

6 visualizzazioni (ultimi 30 giorni)
Hello,
if i use islocalmax for a signal like A=[12;12;4;65;43;34;6;7;7;3;768;324;564;23] Matlab throws
ans =
14×1 logical array
0 0 0 1 0 0 0 1 0 0 1 0 1 0
Why Matlab cant find one of the first maximum [12]?
Thank you for help.

Risposta accettata

Guillaume
Guillaume il 24 Gen 2019
Why Matlab cant find one of the first maximum
Because matlab wants it to be truly a local maxima, that is it needs to be preceded (or followed at the right edge) by lower values. If it's critical that matlab identifies the first (or last) element as a local maxima if the initial (final) slope is downward (resp. upward) then surround your array by -Inf:
A=[12;12;4;65;43;34;6;7;7;3;768;324;564;23];
ismax = islocalmax([-Inf; A; -Inf]);
ismax = ismax(2:end); %to remove the -Inf from the result

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by