Opracowałem skrypt, który w zasadzie wykorzystujekilka zakodowanych na stałe funkcji w celu zmniejszenia moich danych i wymyślenia wykresów dla różnych zmiennych w postaci danych_ # min, jak załączono na rysunku. Zmienne są nazywane w ten sposób, a następnie zmieniane na liczbę minut, w których trwała próba.
To, co chcę zrobić, to zidentyfikować spadekpunkty tych działek, na które wskazuję strzałką. Na przykład istnieje ogromna ilość zmian między punktami, około -68% zmiany z rzędu 50,018 na 50,019. Te krople, które wydają się występować w wierszach (49000: 51000) 100 000 kolumn wiersza numer 6 (identyfikowanych przez niebieską linię wykreśloną) występują w tablicy danych 10columns x 100000row. Są one konfigurowane w zmiennych, na przykład o nazwie data_10min.
Tak więc chciałbym znaleźć konkretny punkt kropli pokazany w
data_10MIN(49000:51000,6)
data_10min jest zmienną, a następnie wyświetlane są parametry wykresu.
Byłoby fajnie mieć coś twardego kodufunkcja automatyzacji i po prostu łatwo znaleźć ten punkt za pomocą twardego kodu, jedyny problem polega na tym, że każda próba przesuwa się w lewo i prawo i nie są one spójne, więc różne próby spadają w różnych momentach (numery wierszy).
findpeaks(data)
ta funkcja oferuje lokalny typ min maxanaliza, ale nie sądzę, żeby naprawdę działała na mój konkretny scenariusz. Jeśli ktoś może mi pomóc w rozwiązaniu tego problemu i spróbuje wymyślić pierwszy krok, naprawdę mi pomoże.
Obraz punktu upuszczania data_10Min
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli poprawnie zinterpretuję twój opis, interesują cię maksima krzywizna twoich danych.
Dla uproszczenia zakładam, że twoje dane są jednakowo odległe, a y jest parametryzowane przez x. Następnie zdefiniuj
x=data_10MIN(49000:51000,1);
y=data_10MIN(49000:51000,6);
dx = diff(x);
dydx = diff(y)./dx;
ddyddx = diff(dydx)./dx(1:end-1);
kappa = ddyddx./(1+dydx(1:end-1).^2).^1.5;
[~,locs] = findpeaks(kappa);
locs = locs+1; % index shifted because of diff
plot(x,y,".-")
plot(x(locs),y(locs),"ro")
i findpeaks(kappa)
otrzymasz pozycje na wektorze krzywizny, które odpowiadają kroplom na wykresie.