3D Linear Interpolation for GPU

Version 1.2.0.0 (1.43 KB) by Philip
3D Linear Interpolation for GPU
391 Downloads
Updated 5 Aug 2014

View License

This function is faster than MATLAB's griddedInterpolant function for the CPU, but slower than MATLAB's interpn function for the GPU. However, I've coded this using arrayfun. Since MATLAB does not support using interpn in arrayfun, this function should be helpful to those who wish to do interpolation inside more complex code executing on the GPU using arrayfun. I tried making this code as fast as possible, but I cannot match the speed of interpn. Any suggestions for improvements would be greatly appreciated.
Note that this function assumes the data to be interpolated does not go off the grid and the grid is uniformly spaced in each dimension. The syntax is exactly like interpn, i.e.
Vi=interpn(x1,x2,x3,V,x1i,x2i,x3i);
Vi=interp3gpu(x1,x2,x3,V,x1i,x2i,x3i);
should produce the same result. If your data are gpuArrays, then interp3gpu will execute on your GPU. Otherwise it will execute on your CPU.

Cite As

Philip (2024). 3D Linear Interpolation for GPU (https://www.mathworks.com/matlabcentral/fileexchange/47437-3d-linear-interpolation-for-gpu), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2014a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.2.0.0

Updated description.

1.1.0.0

Updated code to make it faster and use less memory.

1.0.0.0