plotting a column of a timetable

Hi,
Im trying to plot a column of a timetable which looks like this:
I wanna plot one column of the table over the time for the whole length of the table. I tried using this:
plot(phaseOne.VideoTime, phaseOne.Happy);
phaseOne is the timetable, VideoTime the old columns name with the time and Happy one of the columns i want to plot.
The error im getting is this:
Error using plot
Invalid data argument.
Error in work (line 33)
plot(phaseOne.VideoTime, phaseOne.Happy);
What i noticed are the single quotation marks around my data, which were not included in my original data.
Is the type of the array a problem? Do i need to convert the columns into numbers or similar to plot? I assume i also would have to convert the time/duration back into real numbers then.
Best regards,
Matthias

 Respuesta aceptada

Stephan
Stephan el 7 de En. de 2019
Editada: Stephan el 7 de En. de 2019

0 votos

Hi,
the quotes tell you, that Matlab does not interpret this values as numbers but as datatype char.
You can check data type for every column by clicking the little arrow which appears if you move the mouse to the column name (here field b) in the "variables" tab:
Try to convert them to numbers:
phaseOne.Happy = str2num(phaseOne.Happy)
After performing this operations on the needed columns, the plot command should work properly.
Best regards
Stephan

3 comentarios

Matthias Ley
Matthias Ley el 7 de En. de 2019
Hey Stephan,
thanks for your quick reply! I had a similar idea, and this works aswell, but:
str2num doesnt work with the following error:
Error using str2num (line 35)
Input must be a character vector or string scalar.
Error in work (line 35)
plot(phaseOne.VideoTime, str2num(phaseOne.Happy));
however, str2double works, but it cuts my data to 4 decimal places and i lose information.
Do you think there is a way i can define the column as a double, int32 so i can later multiply the column with 100 and not lose information? i hope my idea is somewhat understandable.
Best regards, matthias
Stephan
Stephan el 7 de En. de 2019
there is no loss of Information - type:
format long
phaseOne.Happy
numeric values are displayed with 4 digits by standard. internally the numbers are stored correct .
Matthias Ley
Matthias Ley el 7 de En. de 2019
Ah, thats a relieve. Thank you Stephan, you helped alot ! :)

Iniciar sesión para comentar.

Más respuestas (1)

Peter Perkins
Peter Perkins el 23 de En. de 2019

0 votos

Matthias, it seems like you've solved your immediate issue. But still, you really ought to figure out how those numeric data became text, and fix the problem at its source. It may be that you need to use detectimportoptions when using readtable, for example.

Categorías

Más información sobre Creating, Deleting, and Querying Graphics Objects en Centro de ayuda y File Exchange.

Productos

Versión

R2018b

Preguntada:

el 7 de En. de 2019

Respondida:

el 23 de En. de 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by