Plotting a nice function

6 views (last 30 days)
Sergio Manzetti
Sergio Manzetti on 14 Jun 2021
Answered: Reshma Nerella on 17 Jun 2021
Hi, I have prepared the given code for the following function:
syms r x y k z
x = -10:0.3:10;
y = x';
z = x + 1i*y;
scale = 1;
J = besselj(5,r)
u = symsum(1i.^(-k).*J.*exp(1i*k*x),k,-5,5)
surf(r,x,imag(u))
But the plot doesn't work, I only get z must be a scalar or a vector. In fact, I have my doubts about the plotting command, because this is a polar function shown in the image, and not a cartesian function.
How I can get this plot similar to this:
?
Thanks!

Answers (1)

Reshma Nerella
Reshma Nerella on 17 Jun 2021
Hi,
The 3rd argument(Z) to the surf function should be a matrix with atleast 2 rows and 2 columns.
In this line of code,
surf(r,x,imag(u))
imag(u) is 1x67 sym, hence you are getting the error.
For more information on the input arguments and surf function, refer to the documentation: surf

Categories

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