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

Datetime Probleme bei Datenauswertung eines Versuches

 

StudentX
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.08.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2020, 11:02     Titel: Datetime Probleme bei Datenauswertung eines Versuches
  Antworten mit Zitat      
Guten Tag,

Ich habe diese Frage schon gesehen aber nie eine richtige Antwort gefunden die mir weiter hilft. Ich habe ein Experiment durchgeführt, welches die Werte in einem Textdokument speichert. Dieses konnte ich nach matlab reinladen und habe das jetzt in ein array umgewandelt.

Ich würde gerne die Y-Werte über die Zeit ab Versuchsstart auftragen (Also zB 13:01:05, 13:01:35, 13:02:05 -> 0, 30, 60 sekunden)
, komme aber mit dem Format nicht ganz zurecht..

Das ist das letzte Ergebnis meiner bisherigen Versuche
Code:

TimeTable=V2AussenmessungZigaretteKammer(:,1); %geht um Feinstaubmessungen von Zigaretten
PMTable=V2AussenmessungZigaretteKammer(:,2);

PM1=table2array(PMTable); %Y-Wert
Time = table2array(TimeTable); %Zeit in "datetime" Format

n=length(Time);
NS=Time(1); %Nullstelle/Versuchsstart

%kläglicher Versuch, die Zeit von HH:MM:SS zu XXXXXX Sekunden zu bekommen.
TinS= zeros(1, n)

for i=1:n;
    TinS(i)=datevec(Time(i)-NS);
end

TinS
 


Über Hilfe würde ich mich sehr freuen! Vielen Dank und Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


StudentX
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.08.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2020, 11:10     Titel:
  Antworten mit Zitat      
Also klar hat TinS mit den Nullen die falsche größe aber selbst wenn ich das umgehe bekomme ich

"Error using DatanauswertungPM (line 52)
You cannot assign numeric values to a datetime array. Assign to the array's Year, Month, Day, Hour, Minute, or Second properties, or
use datetime(x,'ConvertFrom',...) to create datetime values for assignment."
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.425
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.08.2020, 15:22     Titel:
  Antworten mit Zitat      
Hallo,

es ist eine gute Idee datetime zu verwenden.
Um dir bei deinem momentanen Problem mit datetime zu helfen, müsstest du sagen, wie du den Befehl derzeit verwendest.

Statt ( ) und table2array kannst du { } verwenden, oder T.VariableName.
Wenn Time tatsächlich wie der Kommentar besagt ein datetime ist, dann benötigst du gar keine weitere Umwandlung.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
StudentX
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.08.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.08.2020, 09:25     Titel:
  Antworten mit Zitat      
Hallo Harald,
Vielen Dank für die Hilfe! Es hat tatsächlich mit datetime und ohne Umwandlung geklappt.
Falls andere ein ähnliches Problem haben:
Code:
n=length(Time);
NS=Time(1); %nullstelle
TinS= Time-NS %hier ist gar keine schleife notwendig, man kann die Zeit so auf 0 zurück setzen
TinS=datevec(TinS); %wandelt in eine Matrix n*6 um, mit sekunden in der 6. spalte

TinSek=zeros(n,1)
for i=1:n
TinSek(i)=TinS(i,6)+60*TinS(i,5)+3600*TinS(i,4) %falls der versuch über Tage geht müsste man die 3. spalte noch einfügen mit 60*60*24
end
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

nach
Code:
TinS= Time-NS

sollte TinS eine Duration sein? Die kann man auch direkt mit dem Befehl seconds umwandeln.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
StudentX
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.08.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.08.2020, 14:15     Titel:
  Antworten mit Zitat      
Hallo,
Ja genau, das soll die Zeitdauer nach Versuchsstart sein.
Und danach die Umwandlung in Sekunden ist in der Tat umständlich.
TinS ist ein duration array, und mit dem Befehl "seconds" geht die Umwandlung tatsächlich einfacher! Und sieht dadurch gleich viel eleganter aus, Danke!

Viele Grüße, Josh
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.