Problem in computing the curl of 2D velocity vector field

Hi everyone,
I'm trying the compute the curl of a 2D velocity vector field using the function
[curlz,cav] = curl(X,Y,UU,VV);
X, Y are generated using meshgrid. However I obtain a matrix of NaNs and + - Inf ... Do you know what's happening? I think I followed the correct instructions from the Matlab Help... Please let me know.
Emanuele

2 Comments

No, we don't know what's happening because you have not told us how you computed X, Y, UU and VV. Please do so and provide the code...
Hi, I want to calculate the curl from a single trajectory.
Basically, I want to identify if the trajectory rotates clockwise of anti-clock wise and measure the rotation speed.
I use something like the below:
x = data(:,1);
y = data(:,2);
u = data(:,3);
v = data(:,4);
V = [u v];
R = [x y];
curlRes = curl(V,R);
The result is 0 everywhere.
I also tried [curlz,cav] = curl(x,y,u,v) and it gives the follwoing error
'Index in position 1 is invalid. Array indices must be positive integers or logical values.'
the vectors u,v contain negative values as well as they indicate the velocity direction
Thank you

Sign in to comment.

 Accepted Answer

I sorted out the problem, however it seems that the curl is too big at the extremes of the domain... any idea how to fix this?

1 Comment

How did you sort the problem, I have the same issue. Can you explain please?

Sign in to comment.

More Answers (1)

Generally, the input velocity matrices may contain NaNs, try :
sum(isnan(UU(:))); % must be zero if there is no NaN, same for VV

1 Comment

yes, they're both 0, both for UU and VV... can it depend on X and Y matrices?

Sign in to comment.

Categories

Tags

Community Treasure Hunt

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

Start Hunting!