MATLAB Answers

How can specify interval of variables in fsurf?

2 views (last 30 days)
I am following the documentation for fsurf:
There, I see an example:
f1 = @(x,y) erf(x)+cos(y);
fsurf(f1,[-5 0 -5 5])
However, I do not know what is the granularity of x and y. Let's say I am interested in x for -5 < x < 0 but interval should be 0.1, i.e. in MATLAB language it should be x= -5:0.1:0. Similarly, let say Y has -5:0.2:5
How should I accomplish that?
Mathieu NOE
Mathieu NOE on 7 Apr 2021
will do ,
maybe in the future TMW will let you choose a different mesh density for each direction...

Sign in to comment.

Accepted Answer

Mathieu NOE
Mathieu NOE on 7 Apr 2021
see 'MeshDensity' — Number of evaluation points per direction
Control Resolution of Surface Plot
Control the resolution of a surface plot using the 'MeshDensity' option. Increasing 'MeshDensity' can make smoother, more accurate plots while decreasing it can increase plotting speed.
Create two plots in a tiled chart layout. In the first plot, display the parametric surface x=sin(s), y=cos(s), z=(t/10)sin(1/s). The surface has a large gap. Fix this issue by increasing the 'MeshDensity' to 40 in the second plot. fsurf fills the gap, showing that by increasing 'MeshDensity' you increased the resolution.
fsurf(@(s,t) sin(s), @(s,t) cos(s), @(s,t) t/10.*sin(1./s))
title('Default MeshDensity = 35')
fsurf(@(s,t) sin(s), @(s,t) cos(s), @(s,t) t/10.*sin(1./s),'MeshDensity',40)
title('Increased MeshDensity = 40')

More Answers (1)

KSSV on 7 Apr 2021
f1 = @(x,y) erf(x)+cos(y);
x = -5:0.1:0 ;
y = -5:0.2:5 ;
[X,Y] = meshgrid(x,y) ;
Z = f1(X,Y) ;
Rahul Bhadani
Rahul Bhadani on 7 Apr 2021
Because my question was specifically about using fsurf and not in general about how to make a 3D plot.

Sign in to comment.




Community Treasure Hunt

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

Start Hunting!