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,

 採用された回答

Walter Roberson
Walter Roberson 2011 年 2 月 20 日

0 投票

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

8 件のコメント

Matt Tearle
Matt Tearle 2011 年 2 月 20 日
Snap!
Paulo Silva
Paulo Silva 2011 年 2 月 20 日
why not plot3 instead of surf?
Walter Roberson
Walter Roberson 2011 年 2 月 20 日
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 2011 年 2 月 20 日
Thanks Walter
Walter Roberson
Walter Roberson 2011 年 2 月 20 日
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.
Walter Roberson
Walter Roberson 2011 年 2 月 20 日
atan2(0,0) also returns the desired 0, whereas atand(0./0) is going to return nan.
Matt Tearle
Matt Tearle 2011 年 2 月 20 日
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 2011 年 2 月 20 日
thank you Walter and Matt for sharing your knowledge :)

サインインしてコメントする。

その他の回答 (2 件)

Matt Tearle
Matt Tearle 2011 年 2 月 20 日

0 投票

[x,y] = meshgrid(0:0.5:40);
gam = atand(y./x);
surf(x,y,gam,'linestyle','none')
Mark
Mark 2011 年 2 月 20 日

0 投票

Thanks for the help

カテゴリ

製品

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by