Betrachten Sie das folgende BeispielMATLAB: Wie für den Zugriff auf ‚Dauer‘ Datentyp
xDATA = data_timestamp;
[~,~,Days,Hour,Min,~] = datevec(xDATA(2:end) - xDATA(1:end - 1));
BadSamplingTime = find((Days)> 0 | (Hour)> 0 |(Min)> 5);
In dem xData einen Vektor von Zeitmarken enthält, und ich versuche, die Proben mit Abtastzeit größer als 5 Minuten zwischendurch, zu finden der Algorithmus funktioniert gut, aber es schafft 3 zusätzliche Vektoren für die Daten so groß wie mein Zeitstempel Vektor (die Größe zu Zeitstempel Vektor ziemlich groß ist), während, wenn ich dies tun
DurationTime = xDATA(2:end) - xDATA(1:end - 1);
Anstelle der zweiten Linie wird es nur Erstellen Sie einen Vektor gleicher Länge des Datentyps 'duration', der m ist uch leichter, weil handhaben, aber das Problem, das ich kann nicht scheinen, jeden Index des Dauer-Datentypen für Beispiel
DurationTime(5,1)
ans =
26:00:01
ich diesen 26 Stunden Teil zugreifen muß zugreifen zu können, hat jemand eine Idee, wie das zu tun? oder ein besserer Vorschlag
wenn ich brauche, um die Indizes der Zeitdauer Matrix zu finden, was soll ich tun? weil find() nicht funktioniert für die Dauer Datentyp – Umar
@Umar Ich habe es in meiner Antwort hinzugefügt. Sie können 'find' für den logischen Vektor verwenden, da die Einträge, deren Dauer größer als 5 Minuten ist, den Wert" 1 "haben, der nicht Null ist. Somit gibt 'find' diesen Index zurück. – Matt