make function to plot countour and 3D
3 views (last 30 days)
Show older comments
nirwana
on 17 Mar 2023
Answered: Walter Roberson
on 17 Mar 2023
Hi, I want to make automatic function to plot 3D mesh and contour to given any function, but it turn doesn't work, can you help me ? here the function that I wrote
function plot3dfunc(f,Xmin,Xmax,Ymin,Ymax)
Z=f;
x=linspace(Xmin,Xmax,50);
y=linspace(Ymin,Ymax,50);
[X,Y] = meshgrid(x,y);
subplot(1,2,1);
cs=contour(X,Y,Z);clabel(cs);
xlabel('x_1');ylabel('x_2');
title('(a) Contour plot');grid;
subplot(1,2,2);
cs=surf(X,Y,Z);
zmin=floor(min(Z));
zmax=ceil(max(Z));
xlabel('x_1');ylabel('x_2');zlabel('f(x_1,x_2)');
title('(b) Mesh plot');
When I put
f=@(X,Y) 2+X-Y+2*X.^2+2*X.*Y+Y.^2;
plot3dfunc(f,-2,0,0,3)
it says :
Error using contour
Input arguments must be numeric or objects which can be converted to double.
0 Comments
Accepted Answer
Walter Roberson
on 17 Mar 2023
f=@(X,Y) 2+X-Y+2*X.^2+2*X.*Y+Y.^2;
plot3dfunc(f,-2,0,0,3)
function plot3dfunc(f,Xmin,Xmax,Ymin,Ymax)
x=linspace(Xmin,Xmax,50);
y=linspace(Ymin,Ymax,50);
[X,Y] = meshgrid(x,y);
Z = f(X,Y);
subplot(1,2,1);
cs=contour(X,Y,Z);clabel(cs);
xlabel('x_1');ylabel('x_2');
title('(a) Contour plot');grid;
subplot(1,2,2);
cs=surf(X,Y,Z);
zmin=floor(min(Z));
zmax=ceil(max(Z));
xlabel('x_1');ylabel('x_2');zlabel('f(x_1,x_2)');
title('(b) Mesh plot');
end
0 Comments
More Answers (0)
See Also
Categories
Find more on Contour Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!