Simulating scatteredInterpolant for improved performance.
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a set of 3D points X and a set of query points Q. I would like to interpolate function values at the query points Q, given various function values on X. Currently, my code looks something like this:
F = scatteredInterpolant(X, v1);
r1 = F(Q);
F.Values = v2;
r2 = F(Q);
F.Values = v3;
r3 = F(Q);
...
My code works slowly. However, I noticed that I can use the fact that the query points are always the same. I would like to simulate scatteredInterpolant by constructing delaunay triangulation of X, computing the barycentric weights of Q, and use the above results to interpolate the function values. However, I do not understand exactly what happens if some of the points of Q fall outside the convex hull of F. How does scatteredInterpolant (with linear extrapolation) behave in this case?
0 commentaires
Réponses (1)
Matt J
le 2 Août 2017
Modifié(e) : Matt J
le 2 Août 2017
One approach which would avoid the need to understand the internals of scatteredInterpolant would be to use my FUNC2MAT ( Download ) submission. Since the desired operation is a linear function of v, you can express it as a Q-dependent matrix, M.
function r=func(v,F,Q)
F.Values=v;
r=F(Q);
end
F = scatteredInterpolant(X, v1);
M=func2mat(@(v) func(v,F,Q) , v1);
r1=M*v1(:);
r2=M*v2(:);
etc...
I suspect it could be a slow process for func2mat to compute M. Whether this is worthwhile depends on how many times M would be used.
3 commentaires
Voir également
Catégories
En savoir plus sur Delaunay Triangulation dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!