coppie di coordinate diUtilizzando PatternSequence i casi in Mathematica per trovare picchi
data = {{1, 0}, {2, 0}, {3, 1}, {4, 2}, {5, 1},
{6, 2}, {7, 3}, {8, 4}, {9, 3}, {10, 2}}
vorrei estrarre picchi e valli, in tal modo:
{{4, 2}, {5, 1}, {8, 4}}
mia soluzione attuale è questa goffaggine:
Cases[
Partition[data, 3, 1],
{{ta_, a_}, {tb_, b_}, {tc_, c_}} /; Or[a <b> c, a > b < c] :> {tb, b}
]
che potete vedere inizia triplicando le dimensioni del set di dati utilizzando Partition
. Penso che sia possibile utilizzare Cases
e PatternSequence
per estrarre queste informazioni, ma questo tentativo non funziona:
Cases[
data,
({___, PatternSequence[{_, a_}, {t_, b_}, {_, c_}], ___}
/; Or[a <b> c, a > b < c]) :> {t, b}
]
che produce {}
.
Non credo che qualcosa è sbagliato con il modello perché funziona con ReplaceAll
:
data /. ({___, PatternSequence[{_, a_}, {t_, b_}, {_, c_}], ___}
/; Or[a <b> c, a > b < c]) :> {t, b}
che dà la giusta primo picco, {4, 2}
. Cosa sta succedendo qui?
Benvenuti in StackOverflow ArgentoSapiens! Per favore vota le risposte che ti piacciono usando i pulsanti di voto e non dimenticare di accettare la risposta che ti piace come risposta finale usando il pulsante di spunta. Potresti voler aspettare un po 'prima che arrivino altre risposte prima di farlo. –