There are infinitely many possible functions that could be used to fit any possible set of data. Some will fit better than others. In fact, there are infinitely many possible functions that will pass EXACTLY through every point. All of these possible functions would do any of infinitely many arbitrary things between the points. So knowing which one is the one you would want is impossible.
When performing this task, you need to choose a model for the surface that makes sense to you, in context of what the data means, and what you will do with it in in the end. So you might choose some sort of interpolating spline, that will "smoothly" in some sense interpolate the data. However, that spline will have no simple form you can write down. You can evaluate it and plot it, use it to predict the value at any point. But if you want to let someone look at an marvel at the coefficients, don't bother. It won't make any sense to you anyway, except that you can use it.
Alternatively, you might choose some general family of models. Perhaps polynomials, sine & cosine series, Chebychev polynomials, Bessel functions, whatever floats your boat. Some of those choices may be easier to implement than others depending on the form of your data. For example, it becomes easy enough to use sines and cosines if you have a 2-d gridded array of data, because then you just throw it into an fft. You then have a great deal of theory and tools to help you to work with an fft, as long as you understand what you are doing. You can truncate the fft, throwing away the high frequency components, etc. However, it sounds as if an fft would not work for you, since your data sounds as if it is scattered. There are tools to fit polynomial models to scattered data (for example, my polyfitn, found on the file exchange) or you can use the curve fitting toolbox. It helps of course if you understand even polynomial modeling, because far too many people seem to overfit their polynomial models.
Or you can use tools to fit a gridded surface to your data, thus my gridfit, also found on the file exchange. Again, you won't get a function you can write down, just a surface that can be plotted and interpolated as you might wish.
Finally, I would point out that people who are new to curve and surface modeling often seem to fall into some simple traps, either overfitting their data, or trying to fit a model that is wholly inappropriate for their data, or wanting to get a great fit from highly noisy data (which typically redcuces to their overfitting the data), or not understanding that some forms of data are not amenable to fitting a surface at all. For example, if your data forms the surface of a sphere, then it does not represent a single valued function. That invalidates the basic assumptions for almost every surface fitting tool you will find. Other basic traps people fall into may involves data that is noisy, but is not even remotely normally distributed. A basic example is proportional noise.
So really, if you are just learning about these ideas, then you need to spend some time to learn about modeling techniques in general.
Without seeing your data, without a clue as to what you will do with this model when you have it, we (ok, I) cannot realistically offer a recommendation which tool might be right for you. I'd probably start with the curve fitting toolbox, as it offers a great deal of flexibility and models you can employ. And, not to promote my own code since I get nothing from it, but gridfit offers a great deal of value, and it is free.