surf plot using meshgrid?
24 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
alibaba alibabu
am 26 Apr. 2020
Bearbeitet: alibaba alibabu
am 26 Apr. 2020
Good day
Pleas advise for code error. First figure is OK. 2nd one is incorrect.
Whei statments z<100 and 100<=z<200 are not taken in to accounte?
x=0:300;
y=x;
[xx,yy]=meshgrid(x,y);
z=(xx+yy)/2;
figure
surf(x,y,z)
if z<100;
k=z;
elseif z>=100 & z<200;
k=100;
else
k=z-100;
end
figure
surf(x,y,k)


0 Kommentare
Akzeptierte Antwort
Tommy
am 26 Apr. 2020
As z is an array, the following two statements
if z<100
and
elseif z>=100 & z<200
will only be true if every element within z satisfies the conditions, so you always end up with the third result (k=z-100).
To apply the if elseif statements to every element within z, try
x=0:300;
y=x;
[xx,yy]=meshgrid(x,y);
z=(xx+yy)/2;
figure
surf(x,y,z,'EdgeColor','none')
k = z;
k(z>=100) = z(z>=100)-100;
k(z>=100&z<200) = 100;
figure
surf(x,y,k,'EdgeColor','none')
1 Kommentar
Weitere Antworten (1)
David Hill
am 26 Apr. 2020
y=x;
[xx,yy]=meshgrid(x,y);
z=(xx+yy)/2;
figure
s=surf(xx,yy,z);
s.EdgeColor = 'none';%turns black if too many points
if z<100
k=z;
elseif z>=100 & z<200
k=100;
else
k=z-100;
end
figure
f=surf(xx,yy,k);
f.EdgeColor = 'none';
0 Kommentare
Siehe auch
Kategorien
Mehr zu Graphics Object Properties finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!