WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Messreihen Zeitachsenanpassung für Plot

 

Club-Mate
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 15.10.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 14.12.2013, 13:24     Titel: Messreihen Zeitachsenanpassung für Plot
  Antworten mit Zitat      
Hallo allerseits,
ich habe einen Versuchsstand und zwei verschiedene Systeme, die verschiedene Messreihen plotten. Da beide Systeme auch Temperaturen plotten können, würde ich gern Temperaturen aus System 1 und System 2 im gleichen Plot darstellen.
Jedoch kann ich die Systeme nicht so porgrammieren, dass sie gleichzeitig ihre Messungen beginnen. Bedeutet, dass die Zeitachse komplett verschieden ist. Beide Systeme zeichnen alle 1 Sekunde einen Messwert auf.
Code:
%

%Die Zeiten der Messreihen liegen im txt vor in
Time1-Format = Uhrzeit in HH:MM:SS Beispiel: 09:32:54 , 09:32:55,...
Time2-Format = Messdauer in HH:MM:SS Beispiel:00:00:00, 00:00:01,...

%Nach importieren sehen die aus wie folgt:
Time1 = [7.352353978472222e+05, 7.352353981712963e+05, 7.352353981828704e+05; 7.352353981944445e+05]'; %etc Messreihe hat hier einen Sprung, jedoch ist das für mein Problem nicht ausschlaggebend
Time2 = [735235, 7.352350000115741e+05, 7.352350000231481e+05, 7.352350000347223e+05]';
Time2_Referenz = repmat(datenum('09:32:29','HH:MM:SS'),size(Time2),1);
Time2_Uhrzeit = Time2 + Time2_Referenz;

%Da Time2 früher anfängt als Time1, war meine Idee den ersten Eintrag von Time1 in Time2 zu suchen:
f = find(Time2_Uhrzeit == Time1(1));
 

Kein Ergebnis zu finden, obwohl bei einer Messreihe von mehreren Tausend Sekunden Time2_Uhrzeit definitiv die Uhrzeit 09:32:54 enthält!

Naja das war zumindest mein Ansatz, die Daten aneinander anzupassen, um sie in einem Plot vergleichbar darstellen zu können.

Vielen Dank für Deine Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 18.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 15.12.2013, 17:56     Titel:
  Antworten mit Zitat      
Hallo,

Den Index des ersten Elements von Time1 in Time2 finden:
Code:
zeit1 = ['09:32:58'; '09:32:59'; '09:33:00'; '09:33:01'; '09:33:02'; '09:33:03'];
zeit2 = ['09:32:54'; '09:32:55'; '09:32:56'; '09:32:57'; '09:32:58'; '09:32:59'];

Time1 = datenum(zeit1);
Time2 = datenum(zeit2);

% In einer Schleife
for ii = 1:numel(Time2)
    if Time2(ii) == Time1(1)
        idx = ii;
        break;
    end
end

% Ohne Schleife
[~, index] = intersect(Time2, Time1);
idx = index(1);


Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
Club-Mate
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 15.10.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 16.12.2013, 13:29     Titel:
  Antworten mit Zitat      
Hey Danke,
leider funktioniert das leider nicht ganz.

Ich habe jetzt zumindest mit dieser Hilfe eine fast-Lösung gefunden, jedoch kann ich mit dem Ergebnis nichts anfangen.

Anbei ist eine Datei mit Zeitvektoren. Dabei habe ich die importierten Vektoren Time und Time_Abgas_check, welche im datenum Format vorliegen mit dem Befehl
Code:

Time_Abgas_check_Uhrzeit = datestr(Time_Abgas_check,'HH:MM:SS');
Time_Uhrzeit = datestr(Time,'HH:MM:SS');
 

konvertiert.

Mit dem Befehl
Code:

[~, index] = intersect(Time_Abgas_check_Uhrzeit, Time_Uhrzeit);
idx = index(1);
 

Erhalte ich für den Zeitvektor im datenum Format kein Ergebnis.
Bei den mit datestr konvertierten Zeitvektoren erhalte ich
Code:

idx =

       31672
 


Da jedoch die Vektoren datestr Format das Value "9619 x8 char" bzw "8730x8 char" aufweisen, sagt mir das Indexergebnis nichts. Eintrag 31672? Wo in einem Vektor von Einträgen bis zu 9619 ist das verflucht?

Wie habe ich den Index zu interpretieren?

Im Übrigem, wenn ich 31672/8 auf den Eintrag Time_Abgas_check(3959) zurückführe. Stimmt dieser auch nicht mit Time(1) überein.
%Ratlos

Vielen lieben Dank für Deine Antwort,
Julia

Zeitvektoren_v2.zip
 Beschreibung:

Download
 Dateiname:  Zeitvektoren_v2.zip
 Dateigröße:  66.39 KB
 Heruntergeladen:  322 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 18.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 16.12.2013, 19:04     Titel:
  Antworten mit Zitat      
Hallo Julia,

Club-Mate hat Folgendes geschrieben:
Mit dem Befehl
Code:

[~, index] = intersect(Time_Abgas_check_Uhrzeit, Time_Uhrzeit);
idx = index(1);
 

Erhalte ich für den Zeitvektor im datenum Format kein Ergebnis.

Weil dein Vektor Time_Abgas_check am 3.1.2026, der Vektor Time hingegen am 1.1.2013 aufgezeichnet wurde.


Club-Mate hat Folgendes geschrieben:
Bei den mit datestr konvertierten Zeitvektoren erhalte ich
Code:

idx =

       31672
 

Weil es sich um chars handelt.


Probier es mal so:
Code:
load('Zeitvektoren_v2.mat');
Time_Abgas_check_Uhrzeit = datestr(Time_Abgas_check,'HH:MM:SS');
Time_Uhrzeit = datestr(Time,'HH:MM:SS');

Time_Abgas_check_neu = datenum(Time_Abgas_check_Uhrzeit);
Time_neu = datenum(Time_Uhrzeit);

[~, indexA, ~] = intersect(Time_Abgas_check_neu, Time_neu);
idx = indexA(1);


Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
Club-Mate
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 15.10.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 18.12.2013, 14:51     Titel:
  Antworten mit Zitat      
Super!
Das klappt schon mal, vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.