How can specify interval of variables in fsurf?
6 views (last 30 days)
Show older comments
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?
3 Comments
Mathieu NOE
on 7 Apr 2021
hello
will do ,
maybe in the future TMW will let you choose a different mesh density for each direction...
Accepted Answer
Mathieu NOE
on 7 Apr 2021
hi
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.
tiledlayout(2,1)
nexttile
fsurf(@(s,t) sin(s), @(s,t) cos(s), @(s,t) t/10.*sin(1./s))
view(-172,25)
title('Default MeshDensity = 35')
nexttile
fsurf(@(s,t) sin(s), @(s,t) cos(s), @(s,t) t/10.*sin(1./s),'MeshDensity',40)
view(-172,25)
title('Increased MeshDensity = 40')
0 Comments
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) ;
surf(X,Y,Z)
3 Comments
See Also
Categories
Find more on Surface and Mesh 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!