I am not sure what I should call what I am looking for, but I have some measurements that have 2 independent variables and I would like to get an interpolated value at a specified x,y coordinate. My measurements are not uniformally sampled on both axis, which prevent me from using a tool like Matlab interp2D. My goal is to resample these measurement to create a uniform grid of values that I can feed to a linear interpolator during a simulation.

The data is efficiency measurements of an electric motor taken by a power analyzer with respect to torque/speed. Each measurements is observed for severals seconds and the DC component is taken. Efficiency measurements are expected to be slightly changes when speed/torque changes, so no high frequency component.

What tool/algorithm should I look for? Intuitively, I would resolve this problem by making a mesh of triangle and then interpolating based on the 3 nearest point, or maybe a surface that would reduce the mean error squared. I'd like to use an already proven technique.

I mainly use Matlab and Scipy.


  • 1
    $\begingroup$ Do you only need to get "an interpolated value at a specified x,y coordinate"? Any more hint about data precision, noise? $\endgroup$ – Laurent Duval Sep 5 '18 at 21:42
  • 1
    $\begingroup$ I've updated my question $\endgroup$ – Pier-Yves Lessard Sep 6 '18 at 1:01
  • $\begingroup$ According to the documentation for MATLAB's interp2(), there is no requirement that the input data be uniformly sampled. It should do exactly what you want already. $\endgroup$ – Jason R Sep 6 '18 at 11:24
  • $\begingroup$ Hmm, I didn't see that I could pass scattered data to interp2. I ended up using scatteredInterpolant() $\endgroup$ – Pier-Yves Lessard Sep 6 '18 at 17:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.