I want to draw an arrow in vector.
Show older comments
Q = [0,977 -0,016
-0,016 0,176];
p1 = [0.977 -0.016]; %Coordinate of the first point
p2 =[-0.016 0.176]; % Coordinate of the second point
The start and end points of the arrow are as above. How can I draw a vector arrow with these points?
Answers (5)
Matevz Lavtar
on 14 Nov 2020
1 vote
I have the same problem, so I make a function that solve this problem I think.
Here is a link to it: https://www.mathworks.com/matlabcentral/fileexchange/82665-plotting-vectors-with-arrow-head-pvec?s_tid=prof_contriblnk
Example what can you do with it:

Hope it helps you
Jan
on 9 Oct 2017
0 votes
Search in the FileExchange for the keyword "arrow":
Star Strider
on 9 Oct 2017
Edited: Star Strider
on 9 Oct 2017
One option is the quiver plot:
Q = [0.977 -0.016
-0.016 0.176];
QX = Q(:,1); % Isolate Line ‘x’ Coordinates
QY = Q(:,2); % Isolate Line ‘y’ Coordinates
[~,UV] = gradient(Q); % Generate Gradient
UVX = [UV(1,1); 0]; % Define Quiver Arrow ‘x’
UVY = [UV(1,2); 0]; % Define Quiver Arrow ‘y’
figure(1)
% plot(QX, QY, '-r', 'LineWidth',1.2) % Plot Line (Optional)
hold on
quiver(QX, QY, UVX, UVY, 0)
hold off
axis([-0.15 1.1 -0.15 0.2])
axis equal
grid
EDIT — Added axis calls to the plot.
Martin Meiringer
on 12 Dec 2017
0 votes
Is there a reason why this functionality is still not built in? Using file exchange functions is always a bit difficult if you are sharing your work with colleagues. so please, Mathworks do a arrow / arrow3 function!!!
2 Comments
Star Strider
on 12 Dec 2017
MrKnudsen
on 29 Apr 2020
Will my proposal further down work for you?
MrKnudsen
on 29 Apr 2020
0 votes
I think this hack might be useful:
figure()
hold on; grid on;
a1 = 1j+1;
a2 = -1;
a3 = -1j;
a4 = 0.5 -0.5j;
compass(a1,'r');
compass(a2,'g');
compass(a3,'b');
compass(a4,'y');
Categories
Find more on Vector Fields in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!