MATLAB: Smooth bad data in MattLab

bad datacurve fittingcurve smoothing

I have some Velocity/Elevation data taken in a flume channel using an ADV probe. The majority of the data is good however, at certain elevations the data is erratic and the mean data plotted shifts quite considerably. (See below for an attached image). I am hoping to smooth this data out and generate a nice curve. Any suggestions?

Best Answer

I think you could easily do this by using find to locate the indices of all values lying in the shifted range. This would be something like:
idx = find(y>= 80 & y<=100)
but with the limits tweaked appropriately to set the exact range to be adjusted.
You can then use these indices to alter the relevant portion of the x data using something along the lines of:
X(idx) = X(idx) + 0.1
or whatever the appropriate value to shift is.
I'm sure there is much fancier and more automated ways of doing this but as a first approximation this should do a pretty good job.