2016-10-01 2 views
0

AIM: Ich muss die Animation von zwei Plots in Matlab synchronisieren.finden Sie positive KalenderDauerungen in Matlab

PROBLEM: Die Daten der beiden Diagramme wurden mit einer variablen Abtastrate erfasst.

LÖSUNG: Ich konvertierte die Zeitstempel der beiden Datensätze in Dauerobjekte (relativ zum Anfang des Streaming). Jetzt möchte ich die beiden Datensätze in einer for-Schleife plotten. Für jede Schleife möchte ich die Datensätze zeigen, deren Dauer innerhalb der verstrichenen Zeit liegt.

FRAGE: Wie kann ich feststellen, ob die Dauer einer bestimmten Probe bereits passiert ist oder nicht?

CODE BEISPIEL: Hier simuliere und sortiere ich 10 zufällige Dauern (d1) und 1 zufällige verstrichene Zeit (et). Ich möchte herausfinden, welche Dauer die vergangene Zeit überschritten hat.

`

% simulate elapsed time 
et = calendarDuration(round(rand(1,6)*10)); 

% simulate data for plot 1 
data_for_plot1 = rand(10,1); 

% simulate durations for the samples in plot1 
d1 = calendarDuration(sortrows(round(rand(10,6)*10))); 

% find index of durations which are before the elapsed time 
is_past = (d1-et)>0; 

% plot the data 
plot(data_for_plot1(is_past)) 

`

ERROR MESSAGE

is_past = (d1-et)>0;

undefiniert Operator '>' für die Eingabe Argumente des Typs 'calendarDuration'.

ALTERNATIVE LÖSUNGEN: Es ist mein erstes Mal mit Dauer und Datum Objekte, und ich hasse jedes bisschen davon. Wenn Sie alternative Lösungen haben, würde ich sie gerne hören. Beachten Sie, dass die Zeitstempel von data1 als Strings ('JJJJ-MM-TT HH: mm: ss.SSS') kommen und die Zeitstempel von data2 doppelt vorkommen (zB: 42.525, 42 s und 525 ms).

Vielen Dank für Ihre Hilfe

Antwort

0

Sie split Funktion für diesen Zweck verwenden können.

Verwenden is_past = split((d1-et),'time')> 0; statt is_past = (d1-et)>0;

+0

danke. das löst es. –

Verwandte Themen