Plotting and calculating difference

I have 2 matrix containing data of timestamps, 1 X Nth matrix I loaded them into the workspace and i want to plot the data on x axis and in the same figure. their size of matrix are different.
load('observations.mat');
load('control-times.mat');
index=880;
timestamp = ctrl_times(:,index:end);
obser_time = observation_times(:,1:end);
fig=figure;
hold on; axis equal;
plot(timestamp(1,:),'b*');
After plotting, how do i calculate the difference between data of the 2 matrices?
For example 1st data of timestamp - 1318496774.36108
however obser_time data starts from column 140 - 1318496774.90708
I would require looping if i am not wrong.
Thanks in advance.

6 个评论

If the two matrices are 1 x N, N different between the two, then why does your code show them being accessed with a range index for both the first and second indices ? (:,index:end) and (:,1:end) are both syntaxes that suggest strongly that 2D matrices are being used.
In actual case, for my control-times,it originally has 1x11827 matrix however i only wanted to use the 880 column onwards and till the end of the control-times matrix
yes they are 2D matrices.
Is your ctrl_times a row vector, or is it a matrix for which size(ctrl_times,1) is greater than 1 ? If it is a row vector, why do you confuse things by indexing it with : as its first element?
If they are row vectors as you appear to indicate, then clearer code would be
timestamp = ctrl_times(index:end);
obser_time = observation_times;
oh ok my mistake of indexing it with :
Okay, so now please expand on what you mean by obser_time data starts from column 140 ? Do you mean the first 139 columns are NaN, or do you mean that column 1 of obser_time logically corresponds to column 140 of timestamp ?
basically what i need to do is plot the timestamp and obser_time and compare them. 1st to 139th values of obser_time are zeros.
I need to compare the both data. If there is a obser_time data that occurs before the next timestamp, find the difference in the time between the obser_time data and the previous timestamp.

请先登录,再进行评论。

 采纳的回答

Hours to find out what you really wanted to do. Less than a minute to solve once that was known.
plot(timestamp, 'b*', obser_time, 'r+'); %your plot
padtimestamp = [0 timestamp inf];
[counts, binnums] = histc(obser_time, padtimestamp);
timestampdiff = obser_time - padtimestamp(binnums); %compared

4 个评论

encounter this error while debugging. I suppose its because my timestamp is 1x10948 and my obser_time is 1x2072.
??? Error using ==> plot
Not enough input arguments.
Error in ==> timeintervals at 9
plot(timestamp, 'b*', obser_time, 'r+'); %your plot
plot(1:length(timestep), timestamp, 'b*', 1:length(obser_time), obser_time, 'r+'); %your plot
Now that i have gotten the difference between the obser_time to the previous timestamp, is it possible to also get the difference between the obser_time to the next timestamp??
nextdiff = padtimestamp(binnums+1) - obser_time;
Note if there is an observ_time which is exactly the same or greater than the largest timestamp, then this nextdiff time will be infinity.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Annotations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by