时间轴和温度轴按照matab中的绘图功能排序

时间:2017-07-13 15:29:46

标签: matlab plot graph temperature

我通过电表收购,分为3天。我每天都以hh:mm:ss格式提取时间。这意味着第一天从12:3214:39,第二天从14:1216:17等。温度相同(从23到24°,从22到2的2天) 24等)。

现在我必须绘制数据(ph wrt TTime),但是如果我连接3个时间和T向量,或者为每个时间和温度创建一个列向量,MATLAB会自动按值增加值x - 曲线的值。我需要沿轴保留原始值(这意味着值必须为14:32 14:33 14:34 12:24 12:25等等,温度相同因为我必须在获取时保持数据的连续性。

2 个答案:

答案 0 :(得分:0)

将你的hh:mm:ss转换为datenum - 可能需要添加日,月,年,以便按照你想要的正确顺序。然后你可以将你的刻度设置为HH:MM:SS或秒或任何你需要的。 看这里: https://www.mathworks.com/help/matlab/ref/datetick.html

答案 1 :(得分:0)

从2014b开始,您可以使用datetime

选择实际录制日期或相隔一天的某些任意日期,并将日期部分指定给您的数据,如

% Create 3 random time arrays of the format 'hh:mm:ss'
t = [randi([10,14], 10,1), randi([0,59], 10,1), randi([0,59], 10,1)];
T1 = [num2str(t(:,1), '%02i'), repmat(':', 10, 1), num2str(t(:,2), '%02i'),repmat(':', 10, 1), num2str(t(:,3), '%02i')];
t = [randi([10,14], 10,1), randi([0,59], 10,1), randi([0,59], 10,1)];
T2 = [num2str(t(:,1), '%02i'), repmat(':', 10, 1), num2str(t(:,2), '%02i'),repmat(':', 10, 1), num2str(t(:,3), '%02i')];
t = [randi([10,14], 10,1), randi([0,59], 10,1), randi([0,59], 10,1)];
T3 = [num2str(t(:,1), '%02i'), repmat(':', 10, 1), num2str(t(:,2), '%02i'),repmat(':', 10, 1), num2str(t(:,3), '%02i')];

% Convert to dates on consecutive days
D1 = datetime(strcat('2000-01-01-', T1), 'inputformat', 'yyyy-MM-dd-HH:mm:ss');
D2 = datetime(strcat('2000-01-02-', T1), 'inputformat', 'yyyy-MM-dd-HH:mm:ss');
D3 = datetime(strcat('2000-01-03-', T1), 'inputformat', 'yyyy-MM-dd-HH:mm:ss');

% Plot
data = rand(30,1);
plot([D1, D2, D3], data);