我正在努力处理MATLAB R2011b curl
和meshgrid
功能。
我必须计算curl
网格上定义的2D
速度field (U,V)
的{{1}}。
我的网格由(2D)
2 vectors,
和xm
提供,大小不同且间距不均匀。
基本上
ym
现在我必须计算size(xm)=size_x
size(ym)=size_y
size(U)=(size_x,size_y)
size(V)=(size_x,size_y)
的卷曲。所以我这样做:
field (U,V)
由[Mxm,Mym]=meshgrid(xm,ym);
[curl,omega]=curl(Mxm,Mym,transpose(U),transpose(V));
函数定义。
我讨厌curl
,因为我必须转置MATLAB
和U
。
如果现在情况有所改变,我必须在三个方面做到这一点?
我有第三个方向的网格向量V
。
就我而言,由于某些致命的原因,我的速度字段为zm
:
(U,V,W)
问题:
1)我如何计算这种3D东西的卷曲?我无法进行某种换位。
2)如何避免2D中的换位?
非常感谢。
更新:
根据评论这篇文章的用户的建议,我切换到size(xm)=size_x
size(ym)=size_y
size(zm)=size_z
size(U)=(size_x,size_y,size_z)
size(V)=(size_x,size_y,size_z)
函数来构建网格:
ndgrid
矢量具有正确的尺寸,但产生的卷曲充满了NaN和Inf。任何线索?
UPDATE2:
我正在使用的一些数据(muuuch简化版)
[Mxm,Mym]=ndgrid(xm,ym);
[curl,omega]=curl(Mxm,Mym,U,V);
U 和 V 的每个行的空间位置由 xm 的相应值给出,每个列由 ym
标识