Si potrebbe abusare quiver
, in questo modo si non hanno a che fare con le unità dato normalizzato unhandy utilizzando annotation
drawArrow = @(x,y) quiver(x(1),y(1),x(2)-x(1),y(2)-y(1),0)
x1 = [10 30];
y1 = [10 30];
drawArrow(x1,y1); hold on
x2 = [25 15];
y2 = [15 25];
drawArrow(x2,y2)

Importante è l'argomento 5 ° di quiver
: che disabilita una scala altrimenti di default, in quanto questa funzione viene effettivamente utilizzato per tracciare campi vettoriali. (O utilizzare il valore poperty coppia 'AutoScale','off'
)
È inoltre possibile aggiungere funzionalità aggiuntive:
drawArrow = @(x,y,varargin) quiver(x(1),y(1),x(2)-x(1),y(2)-y(1),0, varargin{:})
drawArrow(x1,y1); hold on
drawArrow(x2,y2,'linewidth',3,'color','r')

Se non vi piacciono le punte delle frecce, è necessario tornare a annotazioni e questo risposta è utile maggio:
How do I change the arrow head style in quiver plot?
Alcune osservazioni riguardanti i commenti:
La dimensione della freccia può essere regolata con la proprietà 'MaxHeadSize'
, non è purtroppo coerente.I limiti assi devono essere impostati successivamente
x1 = [10 30];
y1 = [10 30];
drawArrow(x1,y1,{'MaxHeadSize',0.8,'Color','b','LineWidth',3}); hold on
x2 = [25 15];
y2 = [15 25];
drawArrow(x2,y2,{'MaxHeadSize',10,'Color','r','LineWidth',3}); hold on
xlim([1, 100])
ylim([1, 100])

The solution by sed sembra essere la migliore, perché offre teste di freccia regolabili.
avevo appena avrei avvolgerlo in una funzione:
function [ h ] = drawArrow(x,y,xlimits,ylimits,props)
xlim(xlimits)
ylim(ylimits)
h = annotation('arrow');
set(h,'parent', gca, ...
'position', [x(1),y(1),x(2)-x(1),y(2)-y(1)], ...
'HeadLength', 10, 'HeadWidth', 10, 'HeadStyle', 'cback1', ...
props{:});
end
cui è possibile chiamare dal tuo script come segue:
drawArrow(x1,y1,[1, 100],[1, 100],{'Color','b','LineWidth',3}); hold on
drawArrow(x2,y2,[1, 100],[1, 100],{'Color','r','LineWidth',3}); hold on
si danno risultati abbastanza simili:

uso 'annotation' –
quando si usa "l'annotazione ('freccia', x, y)" Im ottenendo errore ...? – user3668129
come stai usando? cosa inserisci? comunque ci sono già 2 risposte sotto ... –