如何合并在不同时间收集的不同数据?

3次查看(最近30天)
冷雾
冷雾 2021年4月8日
编辑: 冷雾2021年4月9日
你好,
我有三个文本文件(附呈)。文本文件包含不同时间尺度的数据(在不同的时间间隔和不同的仪器进行测量)。每个数据集的第一列为Date/Time,格式为YYYY-MM-DD HH:MM:SS。我需要做一个excel表格,把所有的数据与一个合并的日期/时间规模。
我尝试使用以下代码:
名称= {“Sea_Level.txt”“GW_Level.txt”“Air_P.txt”};%试图读取文本文件
fid = fopen(名字{1});
c = textscan (fid检测器,“% s % s % .2f”“endofline”“\ r \ n”);
文件关闭(fid);
选择= true(长度(c {1}), 1);
选择(2:2:长度(选择))= false;
i = 1:长度(c)
{我}= c{我}(选择);
结束
日期= NaT(长度(c {1}), 1);%为生成的表分配内存
i = 1:长度(日期)
%前两行:
日期(我)= datetime (datenum (strcat (c{1}(我),”“c {2} (i))),“ConvertFrom”“datenum”);
结束
我希望的合并表如下图所示(它是为每个文本文件的前几行准备的)
你有什么建议吗?
祝你愉快!
/海迪

答案(2)

KSSV
KSSV 2021年4月8日
  1. 阅读所有文件,节省每个文件的时间。
  2. 从这三个文件中获得最短和最长的时间。
  3. 创建日期时间数组从最小时间到最大时间与所需的时间步长。
  4. 然后你可以用ismemberknnsearch查看每个文件的Times在主数组中的位置。指数。
  5. 使用上面的索引排列你的数据。
  6. 如果需要,你可以做插值也读到interp1
1评论
冷雾
冷雾 2021年4月8日
亲爱的KSSV,
谢谢你的回复。
我失败了第一步,我不能阅读和节省时间的每个文件使用上述代码。你有什么建议/修改代码吗?我是否需要使用上述代码?
关于时间步长,我不想做任何插值,但更希望有所有的测量数据列出。这里的主要目的是把数据放在一起,然后对它们之间是否有关联进行统计分析。

登录评论。


炜嘉 王
炜嘉 王 2021年4月8日
我认为在<时间表>中存储数据会有很大帮助。
1)将。txt文档中的数据分别存储在<时刻表>中,使用方法
2)合并3 <时间表>使用方法
虽然<时刻表>作为一种数据格式不是非常有效,但是它很方便地存储带有时间戳的数据。时间表>支持时间依赖的数金宝app据采样和插值,因此数据处理也将更加容易。
希望这个有帮助。
2的评论
冷雾
冷雾 2021年4月8日
亲爱的WW,我没能解决它。我希望得到更多的细节。顺便说一下,我正在使用R2018b,我不确定是否可以使用

登录评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!