2016-06-23 23 views
0

Wie kann ich mit aufeinanderfolgenden Werten aus einer Spalte arbeiten. Als ein Beispiel, unter Berücksichtigung diesessubtrahieren aufeinanderfolgende Zeilen in einer Matrix und erhalten das Maximum

time temperature 
1  10 
2  15 
3  18 
4  16 
5  13 
6  10 
7  13 
8  19 
9  11 
10 13 
11 10  

I zwei Vektoren erstellt werden soll, einen in der „Temperatur“ Spalte mit den Werten, die höher ist als die vorhergehende und der Consecutive-Ones (Peaks) sind, und die andere mit dem entsprechenden Zeiten wie diesen:

temp = [18 19 13] 
time = [3 8 10] 

nach diesem subtrahieren die vorherige Zeit für die nächste, ähnliche

s = [5 2] 

dank im Voraus

+0

[ 'findpeaks'] (http://fr.mathworks.com/help/signal/ref/findpeaks.html)? – shamalaia

+2

Wenn Sie die Toolbox zur Signalverarbeitung haben, dann löst [findpeaks] (http://www.mathworks.com/help/signal/ref/findpeaks.html) das für Sie. Wenn Sie dann nicht auf http://StackOverflow.com/a/25998788/1011724 schauen – Dan

Antwort

1

Sie können diese verwenden:

temperature= [10; 
       15; 
       18; 
       16; 
       13; 
       10; 
       13; 
       19; 
       11; 
       13; 
       10] ; 

[temp,time] = findpeaks(temperature') 
s=diff(time) 
+0

Vorbehalt: Dies erfordert, dass man die Signal Processing Toolbox hat, damit dies funktioniert. Der Duplikat-Post zeigt eine allgemeinere Lösung, um dasselbe ohne Toolbox-Abhängigkeit zu erreichen. – rayryeng

Verwandte Themen