How do I linearly resample data?
Show older comments
I would like to linearly resample a matrix. For example if A = [0,0;5,10;10,20] I would like to resample it such that B = [0,0;1,2;2,4;3,6;4,8;5,10;6,12;7,14;8,16;9,18;10,20]
B =
0 0
1 2
2 4
3 6
4 8
5 10
6 12
7 14
8 16
9 18
10 20
I originally thought that this is what the resample function did, but upon further analysis I was wrong. Please keep in mind that I am doing this for large sensor files, files which contain data for weeks at 5 minute timesteps.
Thank you for any help
Answers (2)
Chad Greene
on 4 May 2016
A = [0,0;5,10;10,20];
B(:,1) = 1:10;
B(:,2) = interp1(A(:,1),A(:,2),B(:,1),'linear')
B =
1.00 2.00
2.00 4.00
3.00 6.00
4.00 8.00
5.00 10.00
6.00 12.00
7.00 14.00
8.00 16.00
9.00 18.00
10.00 20.00
Star Strider
on 4 May 2016
0 votes
You can certainly use the resample function. You simply have to create a timeseries object from your data.
See my Answer to your previous Question in: http://www.mathworks.com/matlabcentral/answers/282548-how-can-i-resample-a-set-of-data
3 Comments
Justin Berquist
on 4 May 2016
Justin Berquist
on 4 May 2016
Star Strider
on 4 May 2016
I would have to see your ‘Canal5208RadiatorT_out.csv’ file. If your data are regularly sampled (fixed sampling interval), linearly interpolating it is straightforward, using the linspace function, for instance, to generate the ‘query’ vector. If it’s not regularly-sampled, this becomes more difficult, because four points in every individual interval have to be created.
Categories
Find more on Multirate Signal Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!