Difference Between `fft(signal, nfft)` and `fft(signal)`
Assuming a signal x[n] of length L, The Matlab function fft(x) computes an L-point DFT of the signal, whereas fft(x,N) computes an N point DFT of x[n]. For certain reasons N must be greater or equal to L, otherwise a wrong (aliased) DFT result would be computed, so that one cannot reconstruct x[n] back from such a DFT via inverse DFT.

The two calls would result in two DFTs which are of different lengths and which ,in general, take different values. This is because they are in fact L and N samples of DTFT $X(e^{j\omega})$ of the signal x[n].