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

Gleicher Abstand in bestehender Tabelle erzeugen (Fitbit)

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2018, 23:06     Titel: Gleicher Abstand in bestehender Tabelle erzeugen (Fitbit)
  Antworten mit Zitat      
Hallo Zusammen,

ich bin auf der Suche nach einer Loesung fuer folgendes Problem:
Eine CSV Tabelle mit 2 Spalten und 800 Zeilen gibt mir die Auskunft ueber die Herzfrequenz zu einer bestimmten Sekunde.
z.B.
hh:mm:ss - Frequenz
12:01:00 - 70
12:01:05 - 70
12:01:15 - 72
12:01:25 - 74
12:01:30 - 73
12:01:45 - 73
12:01:50 - 72
12:01:55 - 71


wie ihr seht sind die Sekunden jedoch nicht einheitlich gemessen. Ich moechte die Tabelle so umbauen das es wie folgt aussieht (alle 5 Sekunden ein Wert)

12:01:00 - 70
12:01:05 - 70
12:01:10 - NaN
12:01:15 - 74
12:01:20 - NaN
12:01:25 - 73
12:01:30 - 72
12:01:35 - NaN

Die dann fehlenden Werte plane ich durch eine interpolation zu erzeugen.

Kann mir einer einen guten Tipp geben wie ich vorgehen soll?

Vielen vielen Dank! Wink

Rob


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.01.2018, 23:41     Titel:
  Antworten mit Zitat      
Hallo,

als Table importieren (readtable), in Timetable umwandeln (table2timetable) und dann retime verwenden. Das macht auch gleich die Interpolation.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2018, 08:21     Titel:
  Antworten mit Zitat      
Hallo Harald,

super - vielen dank für den Tipp.
Weißt du auch wie ich das Zeitintervall auf 5 Sekunden anstatt 1 Sekunde erhöhe?

Derzeit sieht mein Befehl so aus:
Code:
HRData2 = retime(HRData, 'secondly', 'spline');



Vielen Dank im Voraus!
Rob
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.02.2018, 21:09     Titel:
  Antworten mit Zitat      
Hallo,

dazu musst du einen Zeitvektor mit diesem Inkrement erstellen. Sollte etwa so gehen (ohne es getestet zu haben):

Code:
tSoll = datetime(2018,2,1):seconds(5):datetime(2018,2,2)


Das kannst du dann an retime übergeben.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2018, 23:42     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank fuer den Hinweis. Ich habe es nun nach der retime mit
Code:
HRData5Sec = HRDataSec (1:5:end,:));


gemacht. Mit deinem Vorschlag sind die Herzfrequenzen zu den jeweiligen Zeiten verschwunden und die ZeitSpalte wurde zur Zeile.

Jetzt steht allerdings mein naechstes Problem an bei dem ich derzeit nicht weiterkomme (bin leider noch in den Matlab Kinderschuhen...)

Ich moechte die Zeiten fuer die Datei neu definieren. Sie sollen also nicht bei 2018 02 03 14:51:00 beginnen sondern z.b. bei 2018 02 02 00:00:00 und bei 2018 02 03 23:59:55 enden.
Die dabei offenen Zeitangaben (da die Messungen i.d.r. nicht um 00:00:00 tatsaechlich begonnen haben) moechte ich z.B. mit eine 0 oder NaN fuellen.

Ich hatte an
Code:

gedacht, aber ich vermute ich bin auf dem Holzweg da ich meiner Zeittabelle hier nicht viel veraendern kann.

Was meinst du?

Viele Gruesse
 
Harald
Forum-Meister

Forum-Meister


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

auch das sollte mit retime gehen. Du musst nur den passenden Zeitvektor angeben.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2018, 21:38     Titel:
  Antworten mit Zitat      
Danke für die viele Unterstützung.
Kannst du mir bei folgendem Problem helfen?

Ich habe eine große Tabelle in der 1 Spalte das Datum und 1 die Zeit angibt.
Ich möchte nun gerne diese beiden Spalten miteinander kombinieren, sodass ich dd/mm/yyyy hh:mm:ss in einer Spalte bekomme.

Date-Spalte ist im datetime-Format
Time-Spalte ist im cell-Format

Hab einen Screenshot angehangen falls es das etwas besser beschreibt.

Bin noch ganz am Anfang meiner Matlab-Karriere Sad Sorry als wenn es eine doofe Frage ist.

Viele Grüße

Tab_Screen.jpg
 Beschreibung:

Download
 Dateiname:  Tab_Screen.jpg
 Dateigröße:  84.82 KB
 Heruntergeladen:  473 mal
 
Harald
Forum-Meister

Forum-Meister


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

Code:
Date = datetime(2018, 1:3, 1:3)';
Time = {'00:01:02', '01:02:03', '02:03:04'}';
T.FullTime = datetime(strcat(datestr(T.Date), {' '}, T.Time))


Daten bitte immer als .mat anhängen oder die Art der Erzeugung reproduzierbar posten. Ich habe ebenso lange gebraucht, Beispieldaten zu generieren wie das Problem zu lösen.

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