フィルターのクリア

Subtractions between consecutive rows in a table

5 ビュー (過去 30 日間)
DEYIRE UMAR
DEYIRE UMAR 2018 年 9 月 24 日
回答済み: Peter Perkins 2018 年 10 月 1 日
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 日
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 日
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.

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

カテゴリ

Help Center および File ExchangeDates and Time についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by