Plotting a surface in MATLAB

1 回表示 (過去 30 日間)
Anthont Goddard
Anthont Goddard 2015 年 10 月 3 日
コメント済み: Star Strider 2015 年 10 月 3 日
I would like to plot
f(x,y) = x^2*y/(x^2 + y^2)
How do I do this in matlab?
  2 件のコメント
sally_wu
sally_wu 2015 年 10 月 3 日
編集済み: sally_wu 2015 年 10 月 3 日
Maybe like this?
x=2;
y=3;
f(x,y) = x^2*y/(x^2 + y^2);
linspace(x,y)
Anthont Goddard
Anthont Goddard 2015 年 10 月 3 日
I am just getting a load of text output. Not a 3d plot

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

採用された回答

Star Strider
Star Strider 2015 年 10 月 3 日
You need to use the meshgrid (or equivalently, ndgrid) function:
x = linspace(-1, 1);
y = linspace(-2, 2);
[X,Y] = meshgrid(x,y);
f = @(x,y) x.^2.*y./(x.^2 + y.^2);
figure(1)
surf(X,Y,f(X,Y))
grid on
I created a function for ‘f’ here, but you could as easily use it simply as:
f = X.^2.*Y./(X.^2 + Y.^2);
and then plot as:
plot(X,Y,f)
I ‘vectorised’ your code to do element-wise operations. See the documentation on Array vs. Matrix Operations for a full discussion.
  4 件のコメント
Anthont Goddard
Anthont Goddard 2015 年 10 月 3 日
Ah that worked. Thanks :)
Star Strider
Star Strider 2015 年 10 月 3 日
My pleasure!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLine Plots についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by