How do I linearly resample data?
18 views (last 30 days)
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
0 Comments
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
2 Comments
Star Strider
on 4 May 2016
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
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.
See Also
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!