我绘制了一些变量和时间之间的关系。 时间位于矩阵中;部分如下:
-keep class rx.schedulers.Schedulers {
public static <methods>;
}
-keep class rx.schedulers.ImmediateScheduler {
public <methods>;
}
-keep class rx.schedulers.TestScheduler {
public <methods>;
}
-keep class rx.subscriptions.Subscriptions{
public static <methods>;
}
-keep class rx.exceptions.Exceptions{
public static <methods>;
}
-keep class rx.schedulers.Schedulers {
public static ** test();
}
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
long producerIndex;
long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
long producerNode;
long consumerNode;
}
-keep class rx.operators.OperationReplay* {
*;
}
以小数点为单位转换后的UTC时间(时间间隔:1小时,间隔:1秒)。
这可能是由于我没有注意到的一些常见原因造成的吗? 谢谢。
更新
> 19.997777777777774
19.998055555555560
19.998333333333338
19.998611111111117
19.998888888888892
参考nmea:[195955 195956 195957 195958 195959]
答案 0 :(得分:2)
这是因为您定义了会议记录的剩余部分。
如果您在更改分钟时运行代码,则会遇到问题。在这里你可以看到&#34;跳跃&#34;在s
中的第三个值(-a round minute),导致time
跳转:
nmea=[195858 195859 195900 195901 195902]
h=nmea/10000;
h_int = floor(h);
h_dec = h - h_int;
m = h_dec * 100;
m_int = floor(m);
m_dec = m - m_int;
s = m_dec * 100
time= h_int + m_int/60 + s/3600
s =
58.0000 59.0000 100.0000 1.0000 2.0000
time =
19.9828 19.9831 19.9944 19.9836 19.9839
对于更短且更正确的方法,您可以使用mod
功能:
nmea=[195858 195859 195900 195901 195902];
m_int=(mod(nmea,10000)-mod(nmea,100))/100;
s=mod(nmea,100);
time= h_int + m_int/60 + s/3600
time =
19.9828 19.9831 19.9833 19.9836 19.9839