Interpolation using scattered query points
1 次查看(过去 30 天)
显示 更早的评论
Hi
It is straight forward to use interpn or griddedInterpolant to perform n-dim interpolation. However, in these functions, the query points must be on a full grid. Is it possible to perform interpolation on a scattered set of query points?
As an example, for 2D interpolation, I don't want to perform interpolation on a full xy grid. I just want to perform interpolation on a set of points {(x1,y1), (x2,y2), (x3,y3), ...}. I know it can be done using a loop, but I was looking for a faster and more efficient vectorized solution.
The question at the link below is similar to my question, but the answer didn't give a vectorized solution.
Thanks
0 个评论
采纳的回答
the cyclist
2019-8-9
I believe the solution you point to can be trivially vectorized:
load clown ;
imagesc(X);
colormap gray ;
[nx,ny] = size(X) ;
r = 1:ny ;
c = 1:nx ;
[R,C] = meshgrid(r,c) ;
%%do interpolation
Ri = [5 6]; Ci = [5 7]; % <------- I VECTORIZED THE CODE RIGHT HERE.
Xi1 = interp2(R,C,X,Ri,Ci) ;
% or can be used without mesh grid like below
Xi2 = interp2(r,c,X,Ri,Ci) ;
4 个评论
the cyclist
2019-8-9
编辑:the cyclist
2019-8-9
Hm. For me, the output of the code I posted yields two points.
Xi1 = [61 55];
I wonder if it is a version issue? I am using R2019a.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!