plot surface using different x,y vector increment and got different graph
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MacGyver Pan
le 26 Nov 2020
Commenté : MacGyver Pan
le 27 Nov 2020
Hi, I using follow code to generate a surface, got fig 1
=========================================================
clear;
x=0:0.01:1;
y=0:0.01:1;
[x1,y1]=meshgrid(x,y);
z1=-1.448-0.477*x1-0.4757*y1+0.1473*x1.^2-0.1952*x1*y1+0.1334*y1.^2;
surf(x1,y1,z1,'FaceColor','red','LineStyle','none');
hold on;
=========================================================
fig 1

and I change x and y vector step from 0.01 to 0.1, got fig 2
=========================================================
clear;
x=0:0.1:1;
y=0:0.1:1;
[x1,y1]=meshgrid(x,y);
z1=-1.448-0.477*x1-0.4757*y1+0.1473*x1.^2-0.1952*x1*y1+0.1334*y1.^2;
surf(x1,y1,z1,'FaceColor','red','LineStyle','none');
hold on;
=========================================================
fig 2

My question is why Z-index is not same range. fig1 Z-index range is [-9,-8] and fig 2 Z-index range is [-3,-2]
which plot is correct ? and what causes this problem? How do I modify the code to produce the same plot?
Thanks....
0 commentaires
Réponse acceptée
Théophane Dimier
le 26 Nov 2020
Hi
In your formula, there is an operation that is not element wise:
z1=-1.448-0.477*x1-0.4757*y1+0.1473*x1.^2-0.1952*x1*y1+0.1334*y1.^2;
If you correct it to
z1=-1.448-0.477*x1-0.4757*y1+0.1473*x1.^2-0.1952*x1.*y1+0.1334*y1.^2;
The two codes give the same results
Plus de réponses (1)
Stephan
le 26 Nov 2020
Modifié(e) : Stephan
le 26 Nov 2020
You did not multiply elementwise, also you can shorten your code a little bit:
fun = @(x,y) -1.448-0.477*x-0.4757*y+0.1473*x.^2-0.1952*x.*y+0.1334*y.^2;
xl=0:0.1:1;
yl=0:0.1:1;
[x1,y1]=meshgrid(xl,yl);
z1=fun(x1,y1);
figure
surf(xl,yl,z1,'FaceColor','red','LineStyle','none');
xs=0:0.01:1;
ys=0:0.01:1;
[x2,y2]=meshgrid(xs,ys);
z2=fun(x2,y2);
figure
surf(xs,ys,z2,'FaceColor','red','LineStyle','none');
Voir également
Catégories
En savoir plus sur Surface and Mesh Plots 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!