日期/时间处理和格式问题

39次观看(过去30天)
F_M
F_M 2022年10月4日18:52
评论道: 明星黾 2022年10月5日15:34
我对MATLAB非常陌生,一直在阅读关于从外部文件(csv)绘制数据的教程和帖子,我在处理日期/时间数据方面遇到了麻烦。CSV文件的日期/时间字段为yyyy:ddd:hh:mm:ss。ssssssssss(包括下面的样本)。
2022:246:10:00:02.593994140 4.44 e + 01
2022:246:10:00:03.592987060 -7.60 e + 01
2022:246:10:00:04.092987060 2.25 e + 02
我已经尝试了几种方法来绘制数据,但在试图将日期/时间字符串转换为日期/时间时总是遇到错误(我确信我遗漏了一个非常基本的/基本项),包括u:DDD:HH:mm:ss.ms的不同变体。
[data,txt,raw] = xlsread(“test.csv”);
X = txt{2:end,1};
Y = raw(:,1);
Dt = datetime(x,“InputFormat”,“u: DDD: HH: mm: ss.ms”);
情节(dt, y)
感谢任何帮助!
1评论
F_M
F_M 2022年10月5日12:41
移动:明星黾 2022年10月5日12:51
再次感谢。表格附呈。

登录发表评论。

接受的答案

明星黾
明星黾 2022年10月4日20:06
“yyyy” 需要 “哦哦” (ISO年),以避免问题的转换-
C = {“2022:246:10:00:02.593994140”4.44 e + 01
“2022:246:10:00:03.592987060”-7.60 e + 01
“2022:246:10:00:04.092987060”2.25 e + 02};
T = cell2table(C)
T =3×2表
C1 C2 _______________________________ ____{'2022:246:10:00:02.593994140'} 44.4 {'2022:246:10:00:03.592987060'} -76 {'2022:246:10:00:04.092987060'} 225
T.C1 = datetime(C(:,1),“InputFormat”,“哦哦:DDD: HH: mm: ss。SSSSSSSS”
T =3×2表
C1 C2 ____________________ ____03-Sep-2022 10:00:03 -76 03-Sep-2022 10:00:04
4评论
明星黾
明星黾 2022年10月5日15:34
我的荣幸!
xlsread 函数已经被其他人取代,现在是“不推荐”(可能在未来的版本中被弃用),所以出于兼容性的原因,我已经在MATLAB Answers中停止使用它。(此外,它不能在网上使用 运行 功能。)我现在用 readtable readmatrix 代替。
我能做出我的 datetime 代码工作后,创建适当的向量使用 组成 .考虑到你的文件格式,我怀疑它是否可能使用 detectImportOptions 得到同样的结果。
不管怎样,我 datetime 代码与它一起工作,所以我通过弄清楚如何创建适当的字符数组来学习一些东西 datetime 在格式不寻常的文件中。

登录发表评论。

更多答案(1)

millercommamatt
millercommamatt 2022年10月4日19:24
Dt = datetime(x,“InputFormat”,“yyyy: DDD: HH: MM: ss。SSSSSSSSS”);
3评论
F_M
F_M 2022年10月4日20:12
我尝试过,但也犯了同样的错误:
与x = txt{2:最终,1};
不能在右边执行0个元素的赋值。
错误在test_plot_a(第2行)中
X = txt{2:end,1};
与x = txt (: 1);
警告:格式“yyyy: DDD: HH: mm: ss。SSSSSSSSS”contains fields for day of year (D) and Gregorian year (y). This will cause
意想不到的从文本转换时的结果。用ISO年(u)代替公历年(y)。见日期时间。格式
财产有关以日期时间格式使用的标识符的完整说明。
在datetime中(第636行)
Test_plot_a(第4行)
错误使用datetime(第651行)
不能使用格式'yyyy:DDD:HH:mm:ss.SSSSSSSSS'将'pixel0'转换为datetime。
错误在test_plot_a(第4行)中
Dt = datetime(x,“InputFormat”,“yyyy: DDD: HH: mm: ss。SSSSSSSSS”);

登录发表评论。

标签

2022世界杯八强谁会赢?


释放

R2021b

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

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

开始狩猎!

Baidu
map