Arrays 误差散点图时间与风速(表中数据)MATLAB

Arrays 误差散点图时间与风速(表中数据)MATLAB,arrays,matlab,scatter-plot,tabular,Arrays,Matlab,Scatter Plot,Tabular,我试图在MATLAB中绘制一个简单的散点图,时间在x轴上,风速在y轴上。我将文本文件中的数据作为表格加载,然后尝试使用table2array进行绘图,因为它需要的是数值,而不是表格数据。我还试着使用double,但又出现了一个错误 错误消息:错误使用分散(第55行)输入参数必须是数字或可以转换为双精度的对象 风转换错误(第18行)散射(时间,wnd_TS) 我不确定将时间作为字符串是否也是一个问题 T = readtable('allunderway.txt', 'HeaderLines', 2

我试图在MATLAB中绘制一个简单的散点图,时间在x轴上,风速在y轴上。我将文本文件中的数据作为表格加载,然后尝试使用table2array进行绘图,因为它需要的是数值,而不是表格数据。我还试着使用double,但又出现了一个错误

错误消息:错误使用分散(第55行)输入参数必须是数字或可以转换为双精度的对象

风转换错误(第18行)散射(时间,wnd_TS)

我不确定将时间作为字符串是否也是一个问题

T = readtable('allunderway.txt', 'HeaderLines', 2);
%A = table2array(T)

date = T(:,1);
time = T(:,2);
wnd_TD = T(:,10);
wnd_TS = T(:,11);
table2array(wnd_TS);
table2array(time);

%double(wnd_TS);
scatter(time,wnd_TS)

为什么要做这么多额外的工作。您可以简单地使用
scatter(datenum(T.time),T.wnd\u TS)
。这应该可以完成工作并节省所有额外的工作。

访问表中包含的数据的更简单方法是使用点表示法,如T.VarN,其中N是您感兴趣的列的编号

在您的代码中,绘图仅使用“时间”,但这仅由小时、分钟和秒组成。我猜想,为了进行图形分析,您需要同时输入日期和时间

可以对日期时间执行算术加法,但要求两个变量具有相同的格式。通过将两个日期转换为“MM/dd/yyyy HH:MM:SS”格式,实际上是在修改变量的数据。但是,如合同中所述:

由于文件第一列(“日期”)中的数据没有时间信息,因此生成的日期时间值的时间默认为午夜。由于文件第二列(“时间”)中的数据没有关联的日期,datetime值的日期默认为当前日期

将变量日期和时间一起添加时,可以将日期的日期('MM/dd/yyyy')添加到时间的时间('HH:MM:SS')

下面是日期时间转换和添加的示例。 变量转换前的日期和时间:

date = 05/04/2011
time = 00:00:42
date = 05/04/2011 00:00:00
time = 06/01/2018 00:00:42
转换后:

date = 05/04/2011
time = 00:00:42
date = 05/04/2011 00:00:00
time = 06/01/2018 00:00:42
添加两个:

05/04/2011 00:00:42
读取表格并绘制散点图的代码:

%Read table.
T = readtable('allunderway.txt', 'HeaderLines', 2);

%Access data of interest from table.
date = T.Var1;
time = T.Var2;
wnd_TS = T.Var11;

%Convert variable time to datetime.
time = datetime(time,'Format','HH:mm:SS');

%Add hours, minutes and seconds to variable date.
date = datetime(date,'Format','MM/dd/yyyy HH:mm:SS');

%Add month, day and year to variable time.
time = datetime(time,'Format','MM/dd/yyyy HH:mm:SS');

%Combine date and time variables.
fullt = date+timeofday(time);

scatter(fullt,wnd_TS);
代码的输出是所需的散点图:

%Read table.
T = readtable('allunderway.txt', 'HeaderLines', 2);

%Access data of interest from table.
date = T.Var1;
time = T.Var2;
wnd_TS = T.Var11;

%Convert variable time to datetime.
time = datetime(time,'Format','HH:mm:SS');

%Add hours, minutes and seconds to variable date.
date = datetime(date,'Format','MM/dd/yyyy HH:mm:SS');

%Add month, day and year to variable time.
time = datetime(time,'Format','MM/dd/yyyy HH:mm:SS');

%Combine date and time variables.
fullt = date+timeofday(time);

scatter(fullt,wnd_TS);

您可以从单独的变量中找到有关合并日期和时间的更多信息