Plotting a function...

I have the following function that I would like to plot.
Gamma = atand((Y)/(X));
Whats the best way to preform this task. Y and X will vary from 0 to 40.
Thanks,

 Accepted Answer

[X,Y] = meshgrid(0:.1:40, 0:.1,40);
surf(X, Y, atand(Y ./ X));

8 Comments

Matt Tearle
Matt Tearle on 20 Feb 2011
Snap!
Paulo Silva
Paulo Silva on 20 Feb 2011
why not plot3 instead of surf?
Not plot3 because X and Y are both varying from 0 to 40, which makes this a question in which there is a Gamma defined over an area. plot3 is not suitable for drawing such things. In some cases something like a waterfall plot would be appropriate, but in such cases there are often specific graph calls.
Paulo Silva
Paulo Silva on 20 Feb 2011
Thanks Walter
By the way: in general, when you are working with arctan, it is better to use atan2(Y,X) rather than atan(Y./X), as atan2 gets the sector right. Unfortunately there is no atan2d (degrees), so I would recommend atan2 followed by a conversion to degrees.
atan2(0,0) also returns the desired 0, whereas atand(0./0) is going to return nan.
Matt Tearle
Matt Tearle on 20 Feb 2011
plot3 is for a curve in space - for each x there's one corresponding y and z, as opposed to a surface where there's a whole range of y values for each x (and vice versa)
Paulo Silva
Paulo Silva on 20 Feb 2011
thank you Walter and Matt for sharing your knowledge :)

Sign in to comment.

More Answers (2)

Matt Tearle
Matt Tearle on 20 Feb 2011
[x,y] = meshgrid(0:0.5:40);
gam = atand(y./x);
surf(x,y,gam,'linestyle','none')
Mark
Mark on 20 Feb 2011

0 votes

Thanks for the help

Categories

Find more on Mathematics in Help Center and File Exchange

Products

Tags

Community Treasure Hunt

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

Start Hunting!