Mostrar comentarios más antiguos
i have a column of data that has 100 points I also have a time column which only has 10 points basically data was sampled at 10Hz, but my time vector contains time value for every 10th sample.
How would I plot this? I run into a problem since the vectors are of different size.
2 comentarios
Baba
el 17 de Nov. de 2011
Walter Roberson
el 17 de Nov. de 2011
Duplicate is at http://www.mathworks.com/matlabcentral/answers/21564-plot
Respuestas (1)
bym
el 17 de Nov. de 2011
0 votos
use interp1 to resample your time vector to match the data vector
12 comentarios
Baba
el 17 de Nov. de 2011
bym
el 17 de Nov. de 2011
convert it using datenum perhaps?
Baba
el 17 de Nov. de 2011
bym
el 17 de Nov. de 2011
you can plot it using 'datetick' which plot is actual time value
Walter Roberson
el 17 de Nov. de 2011
If that is your "actual time vector" and the value after 200159 is 200200, then you do not appear to be missing any points.
If the first value in the vector of sampled time values is the time for the very first data point, then use
NewTimes = Time(1):Time(end)+9;
plot(NewTimes, Data);
If the first value in your vector of sampled times is instead the time for the 10th data point, then use
NewTimes = Time(1)-9:Time(end);
plot(NewTimes, Data);
Baba
el 18 de Nov. de 2011
Baba
el 18 de Nov. de 2011
bym
el 18 de Nov. de 2011
Am I interpreting you correctly: 200159 represents hh:mm:ss and you want to get hh:mm:ss.s ?
Baba
el 18 de Nov. de 2011
bym
el 18 de Nov. de 2011
then my original suggestion of converting to a datnum, using interp1, and plot using 'datetick' stands.
Baba
el 18 de Nov. de 2011
Walter Roberson
el 18 de Nov. de 2011
There is no method of creating empty spaces in a vector.
Note that if interp1() is used, use the 'linear','extrap' options.
You will also have to calculate the data point endpoints. But if you have already gone through the trouble of figuring out the endpoints, then you might as well use linspace()
Use the code from your other thread, but for the Time values, instead of passing in your 200159 and so on, pass in
Time = datenum(str2num(YourTimes.'));
and use the datetick suggestion,
datetick('x','HH:MM:SS.FFF')
Categorías
Más información sobre Dates and Time en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!