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

Uhrzeit statt Sekunden

 

schnetzinator
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 05.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2017, 10:33     Titel: Uhrzeit statt Sekunden
  Antworten mit Zitat      
hallo!

ich bin neu hier (und auch in matlab) - ich bin bemüht nicht sofort ins forum zu schreiben, sondern zuerst mal selbst zu versuchen mit bestehenden einträgen auszukommen, aber in dem fall brauch ich explizite hilfe!
ich bin momentan dabei ein bestehendes skript zur datenauswertung zu benutzen - klappt teilweise eh schon gut, aber manches versteh ich noch nicht.

zu meinem problem:

ich habe einen plot, der auf der x-achse die zeit in sekunden misst, und auf der y-achse ein signal aufträgt.
ich möchte statt bei sekunde 0 zu starten und bei sekunde t aufzuhören lieber die uhrzeit angezeigt bekommen.

das bedeutet ich muss einen zeitvektor erstellen, der im format HH:MM anzeigt und dem ich die startzeit angebe..?

Daran scheitere ich...
Bei mir sieht das momentan so aus (inkl meines versuchs):

Code:

%Interpolate
A.SampleRate = 1000;
A.Data = interp(cutdata, 5);
A.TimeVector = (0:(1/A.SampleRate):((length(A.Data)-1)/A.SampleRate));

A.Data= A.Data(startsample:stopsample);
A.TimeVector= A.TimeVector(startsample:stopsample);

%tvec = 1:length(A.SampleRate);
%ts1 = timeseries(A.Data,tvec);
%ts1.Name = 'Std count';
%ts1.TimeInfo.Units = 'hours';
%ts1.TimeInfo.StartDate='18:00';
%ts1.TimeInfo.Format = 'HH:MM';  
%ts1.Time=ts1.Time-ts1.Time(1);
%plot(ts1)

run(A.Data, A.Sample, 'XYZ');
 



danke für eure hilfe! Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.03.2017, 10:39     Titel:
  Antworten mit Zitat      
Hallo,

sollte gut mit datetimes gehen. Wenn s die Zeit in Sekunden ist:

Code:
t0 = datetime(y, m, d, h, mm, s);
t = t0 + seconds(s);
plot(t, y)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
schnetzinator
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 05.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2017, 11:04     Titel:
  Antworten mit Zitat      
Wow danke für die schnelle Antwortt!! Smile

das muss ich bei jedem plot den ich mache WO einfügen? :-/

[EDITED, Jan, bitte kein Top-Quoting der gesamten vorhergehenden Nachricht - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.03.2017, 11:12     Titel:
  Antworten mit Zitat      
Hallo,

statt des bisherigen Plots?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
schnetzinator
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 05.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2017, 11:20     Titel:
  Antworten mit Zitat      
GOT IT!!!!!!!! Very Happy

Code:


figure;
t0 = datetime(2016, 12, 04, 07, 34, 00);
t = t0 + seconds(A.Frequency.Windowed.TimeVector_5);
plot(t, A.Frequency.Windowed.HF_5)
%plot(A.Frequency.Windowed.TimeVector_5, A.Frequency.Windowed.XY_5)

ylabel('XY (ms²)');
xlabel('t (s)');

 



auch wenn der code sonst niemandem was bringen wird, weil ich auf bestimmte variable zugreife, aber es hat im endefekt mit dem code von dir wunderbar funktioniert!!
Private Nachricht senden Benutzer-Profile anzeigen
 
schnetzinator
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 05.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2017, 15:33     Titel:
  Antworten mit Zitat      
das was ich habe, ist schnell zu wenig ^^
neues problem:

stell dir bitte folgendes vor: ich zeichne einen Parameter 2h auf. die messung geht zb von 0900 bis 1100. ich möchte jetzt nicht den gesamten bereich auswerten, sondern nur die 2. stunde. das habe ich wie folgt gelöst
Code:

start = 60; % in min
stop = 120;

startsample = start*60*A.SampleRate;
stopsample = stop*60*A.SampleRate;
 

ganz zu beginn des files möchte ich - so wie von dir empfohlen - einmal datum und uhrzeit des messbeginnes festhalten.

anstatt aber jetzt bei jeder auswertung - im skript sollten mehrere auswertungen parallel laufen - die formel zu ergänzen, will ich dass der coder
Code:

t=t0+seconds(s)
 


auf diesen oben festgelegten startwert zugreift und das selbst "weiterrechnet".

ich dachte mir, dass das evtl ca. so gehen könnte
Code:

t=(t0+start*60)+seconds(s)
 

...klappt aber nicht.

irgendweine idee? es liegt doch daran, dass ich meinen t0-wert ändern muss?

danke schon mal Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.03.2017, 16:00     Titel:
  Antworten mit Zitat      
Hallo,

wenn, dann
Code:
t=(t0+seconds(start*60))+seconds(s)


Wenn nichts angegeben wird, werden Zahlen im Zusammenhang mit datetimes als Anzahl von Tagen interpretiert.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
schnetzinator
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 05.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2017, 17:28     Titel:
  Antworten mit Zitat      
Smile


alles klar! danke vielmals Smile
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 - 2024 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.