How to average this excel data, so that it retains all data but reduces in length?

Two different programs were used in recording two sets of data. They both used slightly different time intervals so that one program had 1,300 data points and the other program had 1,560 data points. Both data sets were of 130 seconds of recording. The program which recorded the 1,300 data points did it every millisecond, where as the other program seems to have recorded at a slightly faster interval.
Now, the .xls file which contains 1,560 data points must have only 1,300 data points, but points simply cannot be randomly deleted to achieve this. Is there a way to average the data evenly so that it reduces in size to 1,300?
Excuse me as I have only been using MATLAB for a few months. Thanks for all of the input!

3 Comments

Is the data roughly linear? If so, you could use linear interpolation for the new 1300 points, from the 1560 data.
Bob,
Thanks for the reply. The data is not roughly linear overall.
Is it some kind of vibration response, or fluctuation data? Basically, how much variation is there between two or three points?

Sign in to comment.

 Accepted Answer

matrix = xlsread('filename')
n = 1.2;
NewTable = arrayfun(@(i) mean(matrix(i:i+n-1)),1:n:length(matrix)-n+1)';
NewTable = table(NewTable);
writetable(NewTable,'NewTable.csv');

More Answers (1)

If you have Signal Processing TB, use
doc resample
Simple interpolation can be accomplished by interp1 or if you turn the data into timetable by using retime both of which have several choices of interpolation.

Products

Release

R2017a

Asked:

on 26 Jul 2018

Answered:

dpb
on 26 Jul 2018

Community Treasure Hunt

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

Start Hunting!