Plotting 3D functions

10 views (last 30 days)
Spaceman
Spaceman on 19 Mar 2024
Commented: Spaceman on 8 Apr 2024 at 2:52
Given: Create both a contour and surface plot for the following function.
Find:
  • Create an x vector between -2 and 2, with a step size of .2
  • Create a y vector between -2 and 2, with a step size of .2
  • Create a matrix X and Y that contains a grid of coordinate pairs from x and y
  • Create a matrix Z that is the same size as X and Y
Create the following plots, with labels
  • Contour plot
  • Surface plot
Issue: I have what I believe to be the correct code, however, it's giving me an error stating not enough input arguments...
My Solution: What am I missing here?
x=-2:0.2:2
y=x
[X,Y]=meshgrid(x,y)
Z=x.*exp.^-(x.^2+y.^2)
contour(X,Y,Z)
surf(X,Y,Z)

Accepted Answer

the cyclist
the cyclist on 19 Mar 2024
Edited: the cyclist on 19 Mar 2024
You used exp as if it were a constant (e) that is raised to a power. Instead, you should have used it as a function.
You also used x and y instead of X and Y, when calculating Z.
x=-2:0.2:2;
y=x;
[X,Y]=meshgrid(x,y);
Z=X.*exp(-(X.^2+Y.^2));
figure
contour(X,Y,Z)
figure
surf(X,Y,Z)
  3 Comments
the cyclist
the cyclist on 21 Mar 2024
If you don't use parentheses, you are relying on the defined operator precedence. Sometimes, parentheses are better, just for clarity.
Semicolons suppress command window output, not all output. A semicolon such as
surf(X,Y,Z);
is superfluous.
Spaceman
Spaceman on 8 Apr 2024 at 2:52
Thank you for taking the time to clear that up!

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Object Programming in Help Center and File Exchange

Tags

Products


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!