This is a simple problem of interpolation, except that you don't know how to do the interpolation. Standard tools like interp1 don't do it. And interp2 or interp3 are not designed to solve the problem either.
The trick is to use a tool designed to solve that specific problem. (Or to know how to write such a tool. Easier to download the tool itself.) interparc does exactly what you want. Download it from the FEX, here:
interparc can take any set of points that represents a completely general path in 2 or 3 or more dimensions. You tell it how many points to interpolate along the path, and it does so.
x = sort(rand(50,1));
y = sin(3*x);
z = cos(5*x);
xyzi = interparc(100,x,y,z,'spline');
So initially, 50 points spaced arbitrarily along a path. Now 100 points, spaced equally in arclength along that curve and smoothly interpolated.