在Matlab中将不同文件中的连续(不重叠)时间序列数据绘制在一个图形上

mhd8tkvw  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(235)

我正在编写Matlab代码来打开来自连续空气采样仪的数据文件,并可能需要帮助来正确地清理/格式化曲线图。
这是我目前的代码,

#importing data 
A101 = readtable("AE33_AE33-S10-01288_20220101.dat");
A102 = readtable("AE33_AE33-S10-01288_20220102.dat");
A103 = readtable("AE33_AE33-S10-01288_20220103.dat");
A104 = readtable("AE33_AE33-S10-01288_20220104.dat");

#removing empty cells
A101=A101(~any(ismissing(A101),2),:);
A102=A102(~any(ismissing(A102),2),:);
A103=A103(~any(ismissing(A103),2),:);
A104=A104(~any(ismissing(A104),2),:);

#times 
t1 = A101{:,2};
t2 = A102{:,2};
t3 = A103{:,2};
t4 = A104{:,2};
#BC data for each day 
b = A101{:,56};
c = A102{:,56};
d = A103{:,56};
e = A104{:,56};
#plotting 
plot(ts1, b, t2, c, t3, d, t4, e); 
title('BC concentration');
xlabel('Time (hours)');
ylabel('BC concentration (ng/m3)');
ylim([0,1600]);
legend({'1/01', '1/02', '1/03', '1/04'})

到目前为止,所有的日子都是重叠的,但我需要有一个延长的时间序列一个连续的图形。在每个表的第二列中,时间的格式已经是小时:分钟:秒,仪器每天都会创建一个新文件。
此外,如果有人能帮助我以一种更简洁的方式导入文件&删除空白单元格,我将不胜感激,因为我最终将查看数月的数据。我对编码/MatLab不是特别了解,所以我相信其中一些是很容易修复的。谢谢!

ruarlubt

ruarlubt1#

如果我没有理解错的话,您希望所有数据都放在一个大的列数组中,而不是4个较小的列数组中,对吗?如果这是您想要的,那么您所需要做的就是连接您的数据数组。
例如,在您的案例中,您可能希望:

AllData = [b;c;d;e];
AllTime = [t1;t2;t3;t4];

这将为您提供两个列数组,分别包含所有数据点和所有时间点。您可能会遇到的一个问题是,如果您的时间数据每天从0重新开始,在这种情况下,您需要在每个时间数组中增加+24小时。
例如:

AllTimeAdjusted = [t1; t2+24; t3+48; t4+72];

注意:您将无法按原样保留图例条目,可能需要找到另一种方法来解决此问题。

相关问题