Clear Filters
Clear Filters

Issues with gpuArray Interpn

3 views (last 30 days)
deathtime
deathtime on 22 May 2023
I have a series of 3 2D datasets (each one is 3x3 array):
f = rand(3, 3, 3);
In the above, the third dimension represents the dataset number.
These are essentially data at the following sample points for each dimension:
dimOneArray = [0.1 0.2 0.3];
dimTwoArray = [2 3 4];
For each dataset, I would like to interpolate the following targets in each dimension:
dimOneTarget = 0.15;
dimTwoTarget = 3;
In order to do this, I first generate ndgrid for both dimension sample points and then use interpn on the data f:
[dimOne, dimTwo] = ndgrid(dimOneArray, dimTwoArray);
serialInterp = interpn(dimOneArray, dimTwoArray, f, dimOneTarget, dimTwoTarget)
serialInterp =
serialInterp(:,:,1) = 0.5409 serialInterp(:,:,2) = 0.6143 serialInterp(:,:,3) = 0.6527
As can be seen, this results in an array with interpolants for each dataset as expect.
However when I run this using GPU, I get an error:
gpuInterp = interpn(dimOneArray, dimTwoArray, gpuArray(f), dimOneTarget, dimTwoTarget)
Error using gpuArray/interpn
The input arguments are invalid. For supported syntaxes, see help gpuArray.interpn.
Error in test4 (line 13)
gpuInterp = interpn(dimOneArray, dimTwoArray, gpuArray(f), dimOneTarget, dimTwoTarget);
Can someone see what the issue is?

Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!