0

我有一个数组 A,其中包含 hhmmss 格式的时间信息。最终,我想通过指示经过的时间(以秒为单位,从第一次开始)来规范化这个数组。

A = [ 150213 150013 145813 145613 145413 145313 145213 145113 145013 144943 144913 144843 144833 144823 144813 144803 144753 144743 144741 144739 144737 144735 144733 144731 144729 144727 144725 144723 144721 144719]

所以,最后数组应该是:

A_updated = [894 774 654 534 414 354 294 234 174 144 114 84 74 64 54 44 34 24 22 20 18 16 14 12 10 8 6 4 2 0]

进行此操作的最快“Matlab 方式”是什么?非常感谢您的想法。

4

2 回答 2

0

我在 Octave 中执行此操作,因此您可能需要调整以下语法datenum

B = double(A);
hh = floor(B/10000);
mm = floor((B-hh*10000)/100);
ss = B - hh*10000 - mm*100;
C = datenum(2013,10,28,hh,mm,ss);
elapsed_time = (C-C(end))*3600*24;
于 2013-10-28T12:26:19.233 回答
0

我有一段时间没有使用 Matlab,所以请原谅语法错误,我现在没有它,但这是我会尝试的。基本上,将所有内容转换为秒,然后减去最后一个元素。

At = uint32(A);
A_updated = mod(At,100);
At = floor(At ./ 100);
A_updated = A_updated + mod(At,100) * 60;
At = floor(At ./ 100);
A_updated = A_updated + At * 3600;
A_updated = A_updated - A_updated(end);
于 2013-10-28T12:31:11.420 回答