在Matlab中绘制流线图

时间:2015-11-24 13:11:14

标签: matlab plot

我试图在MATLAB中绘制这个流函数:

psi=lambda*X*Y+0.5*omega*(Y*Y*exp(2*lambda*t)+X*X*exp(-2*lambda*t)

我写了一段代码:

lambda = 1;
omega = 0.4;
t=2;

[X,Y]= meshgrid(linspace(-0.05,0.05,100),linspace(0,0.15,100));
Z = lambda*X*Y+0.5*omega*(Y*Y*exp(2*lambda*t)+X*X*exp(-2*lambda*t));
contour(X,Y,Z,100)
[C,h] = contour(X,Y,Z);

set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
colormap cool

它有效,但结果只是一些直线,如: enter image description here

我很担心,因为情节看起来不像这样。

1 个答案:

答案 0 :(得分:0)

您的流功能正在使用X运算符获取Y*网格矩阵的矩阵乘积,而不是处理每个元素。结果基本上没有意义。使用元素运算符.*,然后流函数将是两个坐标的标量函数。

Z = lambda*X.*Y+0.5*omega*(Y.*Y*exp(2*lambda*t)+X.*X*exp(-2*lambda*t));

仍然不是一个非常有趣的,但绘制轮廓的一个明智的事情:

Streamlines