Subtractions between consecutive rows in a table

I need a help to obtain the differences between time values which I read alongside other data and write them to a CSV file as a table. The time values are those of MATLAB time converted into milliseconds, but what I need is the differences between them to be in the table as the time is read. That is row 3 - row2, row4 - row3, row5 - row4,.......rowend - row(end-1). I attached a CSV file where I read 30 samples. Here is the relevant segment of my code:
counter = 0;
logtime_table = table();
while(counter< 30)
Timestamp = now;
timestring = datestr(Timestamp,'HH:MM:SS.FFF');
[~,~,~,hours,minutes,seconds] = datevec(timestring);
Timestamp = 1000*(3600*hours + 60*minutes + seconds);
table_row = table(Timestamp);
logtime_table = [logtime_table; table_row];
counter = counter + 1;
end
filename = strcat('logtime_table.csv');
writetable(logtime_table, filename);

 採用された回答

Peter Perkins
Peter Perkins 2018 年 10 月 1 日

1 投票

Deyire, unless you're using a pretty old version of MATLAB, use datetime and duration instead of datestr/datenum/datevec. Also your code doesn't look like it computes time differences, it computes milliseconds since year zero. Try this:
>> t0 = datetime('now'); pause(rand); t1 = datetime('now'); >> milliseconds(t1 - t0) ans = 453.54
I suggest that in your loop, you save all the timestamps, as datetimes, and all the data at each timestamp, and then ONCE, outside the loop, create a timetable something like this:
dt = diff(timestamps); dt.Format = 's';
tt = timetable(data(2:end),'RowTimes',dt)

その他の回答 (1 件)

KSSV
KSSV 2018 年 9 月 24 日

0 投票

Read about function diff. It will give you the required difference.

2 件のコメント

DEYIRE UMAR
DEYIRE UMAR 2018 年 9 月 27 日
This function seem not to solve my problem. Does it work on tables at all?
KSSV
KSSV 2018 年 9 月 27 日
It will.....you need to enter doubles into it.

サインインしてコメントする。

カテゴリ

質問済み:

2018 年 9 月 24 日

回答済み:

2018 年 10 月 1 日

Community Treasure Hunt

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

Start Hunting!

Translated by