Create elapsed time vector for loop

4 visualizzazioni (ultimi 30 giorni)
Hi everyone!
I'm new to this so any help would be greatly appreciated!
I would like to analyse some accelerometer data and I'd like to convert the timestamp to elapsed time, with the start of recording being 0. Then, I'd like to create a for loop to do this for the entire column (a few thousand rows), and write the result in a new column.
(Some additional context, if helpful: I have already converted the datetime from 'yyyy-MM-dd HH:mm:ss.SSS' to 'HH:mm:ss.SSS' since the experiments are short and don't take more than a few minutes each. The sampling frequency is 100Hz and so I have samples every 0.001-0.002 seconds. I will then need to find peaks within different elapsed periods).
Thank you in advance!
Evelyn

Risposta accettata

Seth Furman
Seth Furman il 18 Mar 2021
Modificato: Seth Furman il 18 Mar 2021
1) You can convert timestamp data into elapsed time using datetime subtraction.
>> dt = datetime(2020,1,1:5)
dt =
1×5 datetime array
01-Jan-2020 02-Jan-2020 03-Jan-2020 04-Jan-2020 05-Jan-2020
>> dt - dt(1)
ans =
1×5 duration array
00:00:00 24:00:00 48:00:00 72:00:00 96:00:00
2) MATLAB supports vectorized operations so you can directly subtract a scalar or vector datetime from a vector datetime as in the example above.
3) See the following link for how to add new variables to a table.

Più risposte (0)

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by