如何从excel中绘制时间戳数据

我有一个Excel文件,其中包含数以千计的时间与幅度数据集。 时间单元是A,幅度单元是B.数据如下所示:

2/23/2012 3:12 -69.4

2/23/2012 3:13 -70.3

2/23/2012 3:14 -73.3

2/23/2012 3:15 -75.4

2/23/2012 3:16 -78.1

2/23/2012 3:17 -80.1

我怎样才能绘制在MATLAB的时间戳振幅值?

%%// FILENAME filename = 'sid.xls'; %%// OPTION 1: If there is a lot of data, XTickLaabels and XTicks would clutter up. %%// To Avoid that, define the number of XTickLabels needed, %%// otherwise set it as NaN to use all x-data. XTickLabel_count = 3; %%// OPTION 2: If you would like to show the time only with dates time_only = false; %%// OPTION 3: If you would like to show the XTickLabels as 90 degrees rotated XTickRot = false; %%// Read in data [num,text1,raw] = xlsread(filename); %%// Account for 12AM times, which are not read in text1. Append that data. split1 = regexp(text1,'\s','Split'); zero_times = cellfun(@numel, split1)==1; text1(cellfun(@numel, split1)==1) = mat2cell([char(text1(zero_times)) repmat(' 00:00:00',nnz(zero_times),1)],ones(1,nnz(zero_times))); %%// Get the time only data without dates split1 = regexp(text1,'\s','Split'); split_text = vertcat(split1{:}); time_text = split_text(:,2); %%// Use the time only data for XTickLabels if time_only text1 = time_text; end %%// Select few XTickLabels from the entire X-data or whole respectively %%// and store as text2 if ~isnan(XTickLabel_count) XTickIntv = round(numel(text1)/XTickLabel_count); text2 = cell(size(text1)); text2(1:XTickIntv:end)=text1(1:XTickIntv:end); else text2 = text1; end %%// Plot figure,plot(num) set(gca, 'XTickLabel',text2, 'XTick',1:numel(text2)) if XTickRot xticklabel_rotate([],90,text2); end set(gca, 'Ticklength', [0 0]) %%// Remove XTicks but keep XTicklabels return; 

注意:此代码使用XTICKLABEL_ROTATE from Mathworks File-exchange

方法1:使用XTickLabel_count = 3 time_only = falseXTickRot = false

在这里输入图像说明

方法2:使用XTickLabel_count = 5 time_only = trueXTickRot = false

在这里输入图像说明

方法3:使用XTickLabel_count = 10 time_only = trueXTickRot = true

在这里输入图像说明