First, take the fft to see what frequencies are signal and what are noise. If it looks that you have separable signal and noise energy, you can use a frequency-selective filter to eliminate the noise. (Since ‘spikes’ tend to be characterised as being high-frequency, you may be able to filter out most of the ‘spike’ energy.)
There are several ways to design filters in MATLAB, including dfilt and designfilt. My IIR filter design procedure is here: How to design a lowpass filter for ocean wave data in Matlab?.