
Error using griddedInterpolant: The grid vectors are not strictly monotonic increasing. please help me!
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dear All,
I have 3 vectors (x1, x2 and R). I want to build surface plot 'R' depending on 'x1' and 'x2' [R(x,x2)] by using "griddedInterpolant" but i get error "The grid vectors are not strictly monotonic increasing". Below show my code.
x1=[1.5 0.8 1.25 1 0.75 0.625 1.375 0.5 1.125];
x2=[0.875 0.56 0.5 0.75 1 0.81 0.69 0.625 0.94];
R=[25 24 21 26 28 29 26.5 26.6 26.1];
F = griddedInterpolant({x1,x2},R);
xq=0.5:0.1:1.5;
yq=0.5:0.1:1;
vq=F({xq,yq});
surf(xq,yq,vq)
please help me how to fix this error and regrid my data.
Many thanks
0 commentaires
Réponse acceptée
Stephen23
le 25 Nov 2019
Modifié(e) : Stephen23
le 25 Nov 2019
Your data are scattered, not gridded:
so you will need to use a scattered interpolant:
>> x1 = [1.5,0.8,1.25,1,0.75,0.625,1.375,0.5,1.125];
>> x2 = [0.875,0.56,0.5,0.75,1,0.81,0.69,0.625,0.94];
>> R = [25,24,21,26,28,29,26.5,26.6,26.1];
>> F = scatteredInterpolant(x1(:),x2(:),R(:),'linear','linear');
>> xq = 0.5:0.1:1.5;
>> yq = 0.5:0.1:1;
>> vq = F({xq,yq});
And visualizing (note that input data which are not on the interpolation grid may appear to have different values from the plotted interpolated data, this is to be expected):
>> [xqM,yqM] = ndgrid(xq,yq);
>> surf(xqM,yqM,vq)
>> hold on
>> scatter3(x1,x2,R,'filled')

Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Interpolation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!