# how can i align two arrays according to their clock

17 views (last 30 days)
song on 22 Oct 2014
Commented: song on 23 Oct 2014
i have 2 sets of data A and B . both A and B is a 4096*2 vector. the first col is data ,second col is Corresponding sample clock.
if true
% code
end
i plot the data and it looks like Fig 1
if true
% code
plot(data);
end Fig1
I also plot the clock in Fig2 i want to align the data1 and data 2 according to their clok , how can i do.

Matt Tearle on 22 Oct 2014
Edited: Matt Tearle on 22 Oct 2014
If by "align the data" you mean you want both data1 values and data2 values at some common time values, then you will probably need to interpolate both vectors onto a time vector of your choosing. This could be a little tricky given that the first 1000 values of time(:,1) and time(:,2) are pretty much constant but not equal, but anyway, in general you want to do something like this:
N = 2000;
t = linspace(min(time(:)),max(time(:)),N); % make a vector of times
data1 = interp1(time(:,1),data(:,1),t); % interpolate first column of data onto t
data2 = interp1(time(:,2),data(:,2),t); % interpolate second column of data onto t
plot(t,data1)
hold on
plot(t,data2)
Now you have both data1 and data2 with N points, at the time values given in t. You can be fancier about how you make t, such as using intersect or union.
[If by "align" you just mean see them aligned on the plot, then just do what Orion suggested.]
song on 23 Oct 2014
thank you i will try your method .

Orion on 22 Oct 2014
just do :
plot(time,data)
song on 23 Oct 2014
thank you ,but you misunderstood my mind.