MATLAB: Down-sampling with interp1

down-samplinginterpolation

Hi,
I have a vector with 1500 rows, and I am trying to down-sample this using interp1 like this:
downsampled = interp1([1:length(original)],original,1:1:100);
However, it looks like the output "downsampled' is just a copy of the first 100 rows of original. Any hints on this?
Cheers

Best Answer

oL = length(original);
downsampled = interp1(1:oL, original, linspace(1,oL,100));
However please think about whether you want 100 points output or 101 points output. If you want to divide into 100 segments of equal length then you want 101 points output.