MATLAB: Down-sampling with interp1


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?

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.