MATLAB Answers

Add arrows to surface plot to represent wind direction

26 views (last 30 days)
mashtine
mashtine on 23 Sep 2015
Commented: mashtine on 24 Sep 2015
Hi there,
I am seeing a lot of information about the quiverm function but I only have my wind direction data in degrees and not in the u and v components. Is there a simple way to project a matrix of wind direction values (360 degrees) onto a sufacem plot? Perhaps there is a way to add and arrow and align it based on the wind direction value? I do not want to add magnitude as well, just direction.
Many thanks,
  7 Comments
Kirby Fears
Kirby Fears on 23 Sep 2015
-179 is the correct answer.
-179+360=181
The NCL website adds 180 to this, which would be
-179+180=1, which is incorrect.

Sign in to comment.

Accepted Answer

Kirby Fears
Kirby Fears on 23 Sep 2015
Edited: Kirby Fears on 23 Sep 2015
I'm posting an example as described in my earlier comment.
Code below creates a 10x10 grid of arrows that are all pointing at 120 degrees.
x=repmat(1:10,10,1);
y=x';
deg=120; % all points have same direction
% if you have a degree array the same size as x,
% you can use cosd and sind on "deg" without
% using repmat after
u=repmat(cosd(deg),size(x));
v=repmat(sind(deg),size(x));
% you can multiply u and v by magnitude of required
quiver(x,y,u,v);
  5 Comments
mashtine
mashtine on 24 Sep 2015
Thanks a lot Thorsten! As the I would like the arrows to point to where the wind is going to, I will use
cosd(270 - deg)
sind(270 - deg)
That seems to be working well for all degrees.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!