MATLAB Answers

Error scatter plot time vs wind speed (data from a table)

11 views (last 30 days)
Marissa Menzel
Marissa Menzel on 31 May 2018
Edited: Greg on 1 Jun 2018
I am trying to make a simple scatter plot with time on the x-axis and wind speed on the y-axis. I loaded in my data from a txt file as a table and then tried to use table2array to plot since it needs numeric values not table data. I also tried using double and got another error.
Error Message: Error using scatter (line 55) Input arguments must be numeric or objects which can be converted to double.
Error in windconversions (line 18) scatter(time,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)

Answers (1)

Greg
Greg on 1 Jun 2018
Edited: Greg on 1 Jun 2018
You're misunderstanding how MATLAB operates. Functions like table2array don't manipulate the variable in place, they return it as an explicit output variable. Replace
table2array(wnd_TS);
table2array(time);
with
wnd_TS = table2array(wnd_TS);
time = table2array(time);
Better than that though is to index into tables properly:
scatter(T.Time_GMT,T.Wnd_TS);

  2 Comments

Marissa Menzel
Marissa Menzel on 1 Jun 2018
I tried the new scatter line and got an error Error using windconversions (line 20) Unrecognized variable name 'time'.
Greg
Greg on 1 Jun 2018
Sorry, I was looking at your time = T(:,2) line rather than the data file. See updated answer.

Sign in to comment.

Sign in to answer this question.