如何找到相同datetime值的指数吗

9的观点(30天)
乌西
乌西 2022年11月7日
评论道: Lei侯 2022年11月18日
我有两个表的不同大小的datetime
t = 1251 x1 datetime
v = 115 x1 datetime 的格式YYYY-MM-DD hh:嗯:党卫军。SSS如下附件。
我想比较datetime (hh:嗯:ss)不考虑 .SSS 相比,找到相同的索引值。谁能帮我做这个吗?
1评论
Stephen23
Stephen23 2022年11月10日
编辑:Stephen23 2022年11月10日
“我想比较datetime (hh:嗯:ss)不考虑 .SSS 相比,找到相同的索引值。"
然后使用DATESHIFT ISMEMBER。不需要循环。
不转换为文本和执行文本比较复杂的嵌套循环。

登录置评。

接受的答案

Khushboo
Khushboo 2022年11月7日
你好,
您可以使用datestr datetime转换为一个字符串(它处理.SSS部分)。我不确定是否有任何现有的功能,可以比较不同的行不同的表来找到行一列中相同的值。这是我所做的,我妈肯定更高效的解决方案可能存在:
%假设这两个表是A, B第一列有datetime值
一个。t = datestr (“);
B。t = datestr (B.t);
h1 =身高(A);
h2 =身高(B);
我= 1:h1
j = 1: h2
如果比较字符串({1}我,B {j, 1}) = = 1
我,我
打破
结束
结束
结束
希望这可以帮助!
4评论
Lei侯
Lei侯 2022年11月18日
dateset现在阻止使用。您可以使用[m h, s] = hms (datetime)提取时间组件,然后调用地板(s)删除.SSS数据。

登录置评。

答案(1)

史蒂文的主
史蒂文的主 2022年11月7日
截断datetime前面整个第二然后比较。
d = datetime (“现在”);
d。格式= d。格式+“.SSSSSS”
d =datetime
07 - 11月- 2022 13:52:16.687821
d2 = dateshift (d,“开始”,“第二”)
d2 =datetime
07 - 11月- 2022 13:52:16.000000
d3 = dateshift (d,“开始”,“一分钟”)
d3 =datetime
07 - 11月- 2022 13:52:00.000000
2的评论
史蒂文的主
史蒂文的主 2022年11月7日
假设我想检查如果现在是13点(和一些的秒数)。在下面的例子中尽管d那些“一些的秒数“d3可裁剪的秒。d不等于d4,但是d3。
d = datetime (“现在”);
d。格式= d。格式+“.SSSSSS”
d =datetime
07 - 11月- 2022 18:13:15.396629
d2 = dateshift (d,“开始”,“第二”)
d2 =datetime
07 - 11月- 2022 18:13:15.000000
d3 = dateshift (d,“开始”,“一分钟”)
d3 =datetime
07 - 11月- 2022 18:13:00.000000
d4 = datetime(7 2022, 11日,18日,13日,0)
d4 =datetime
07 - 11月- 2022 18:13:00
isequal (d4, d3)
ans =逻辑
1
isequal (d4, d)
ans =逻辑
0

登录置评。

2022世界杯八强谁会赢?

世界杯预选赛小组名单社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!世界杯预选赛小组名单

开始狩猎!

Baidu
map