[x,y]=meshgrid(-20:0.1:20);
m=2;
U=2;
a=4;
psi = U*y - (m/(2*pi))*(atan(y/(x-a))-atan(y/(x+a)));
contour(x,y,psi);
but I can't get my graphs. They are all blank page.

 采纳的回答

Ameer Hamza
Ameer Hamza 2020-5-17
编辑:Ameer Hamza 2020-5-17
You need to use element-wise division: https://www.mathworks.com/help/matlab/ref/rdivide.html
[x,y]=meshgrid(-20:0.1:20);
m=2;
U=2;
a=4;
psi = U*y - (m/(2*pi))*(atan(y./(x-a))-atan(y./(x+a)));
%^ dot here and ^ here
contour(x,y,psi);

更多回答(1 个)

dpb
dpb 2020-5-17
You left out some very key information MATLAB told you about...
...
contour(x,y,psi);
Warning: Matrix is singular to working precision.
Warning: Matrix is singular to working precision.
Warning: Contour not rendered for non-finite ZData
>> In contour (line 51)
That's a very big klew you didn't do something right!!!
And, what that is, is that you used the ordinary '*' and '/' operators in defining psi when you wanted and needed the dot operators for element-by-element operations. Use
psi = U*y - (m/(2*pi)).*(atan(y./(x-a))-atan(y./(x+a)));
instead and joy will ensue...

类别

帮助中心File Exchange 中查找有关 2-D and 3-D Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by