How do I get a surface graph of my function f(x,y)?

6 views (last 30 days)
I have the following code. My function is f(x,y) = sin(x)+cos(y). I want to replace x, y with sets a and b, respectively. I ude the subs function, but Z is a 51x51 sym, instead of 51x51 double in order to be plotted. Where is my mistake?
syms x y
f = sin(x)+cos(y);
a = [0:0.1:5];
b = [1:0.1:6];
[X, Y] = meshgrid(a,b);
Z = subs(f,[x y], {X, Y});
surf(X,Y,Z)

Accepted Answer

Star Strider
Star Strider on 18 Nov 2017
Use an anonymous function, and don’t use the Symbolic Math Toolbox. You don’t need it for this problem.
f = @(x,y) sin(x)+cos(y);
a = [0:0.1:5];
b = [1:0.1:6];
[X, Y] = meshgrid(a,b);
Z = f(X,Y);
surf(X,Y,Z)
  5 Comments
Karan Gill
Karan Gill on 20 Nov 2017
@Dimitris, or use fsurf instead of fmesh.
@Star Strider, actually it's only
>> f = @(x,y) sin(x)+cos(y);
>> fsurf(f)

Sign in to comment.

More Answers (0)

Categories

Find more on Discrete Math 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!