Temperature vs time plot

I want to plot data vs temperature data from an external file:
fileID_A=fopen('discesa_salita.txt');
A = textscan(fileID_A,'%D %s');
time_A=A{1};
time=time_A(37:210) ;
temp_A=A{2};
temp=temp_A(37:210) ;
figure()
plot(time, temp);
But Matlab said: "Error using plot Invalid second data argument", what am I doing wrong?

4 comentarios

KSSV
KSSV el 14 de Jun. de 2017
What is class of temp and time? What are their sizes?
Michela Longhi
Michela Longhi el 14 de Jun. de 2017
they are
00:00:00 26
00:00:01 26
00:00:02 26
00:00:03 26
00:00:04 26
00:00:05 26
KSSV
KSSV el 14 de Jun. de 2017
Class of time? class(time) gives what output? You need to convert it to certain format to plot.
Michela Longhi
Michela Longhi el 14 de Jun. de 2017
I don't know... how can I convert to seconds, for example?

Iniciar sesión para comentar.

Respuestas (2)

KSSV
KSSV el 14 de Jun. de 2017

0 votos

time = {'00:00:00'
'00:00:01'
'00:00:02'
'00:00:03'
'00:00:04'
'00:00:05'} ;
temp = [26 ; 26 ; 26;26;26;26] ;
plot(second(time),temp) ;
Peter Perkins
Peter Perkins el 20 de Jun. de 2017

0 votos

You are likely to be much happier using readtable than textscan. Given that you've used '%D %s' as the format, your temperatures are read in as a cell array of char vectors, and plot isn't going to like that.
Try something like this:
t = readtable('discesa_salita.txt','ReadVariableNames',false); % best guess
t.Var1 - timeofday(t.Var1); % timestamps read as datetimes, convert to durations
t = t(37:210,:);
plot(time, temp);
Depending on what version of MATLAB, you may need to give readtable a format.

Categorías

Preguntada:

el 14 de Jun. de 2017

Respondida:

el 20 de Jun. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by