![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175153/image.png)
HOw can I change the size of the arrows
158 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MAJED
el 24 de Jun. de 2014
Comentada: Cola
el 15 de Jun. de 2021
I did this code to plot a vector field, and i was wondering how can i change the size of the arrows?
t1 = linspace(-1,100,20);
y1 = linspace(-1,150,20);
[T,Y]=meshgrid(t1,y1);
DY=TribMod1(T,Y); DT=ones(size(DY));
scale = 1./sqrt(DT.^2+DY.^2);
quiver(T,Y, scale.*DT, scale.*DY);
axis([-1 100 -1 151])
ylabel('y')
xlabel('time (t)')
title('Direction field of function(1) with b=0.005')
0 comentarios
Respuesta aceptada
Star Strider
el 24 de Jun. de 2014
Use the 'AutoScaleFactor' property:
% CREATE DATA:
a = linspace(0,6*pi);
x = exp(-0.1*a) .* cos(a);
y = exp(-0.1*a) .* sin(a);
da = diff([0 a]);
dxda = diff([0 x]) ./ da;
dyda = diff([0 y]) ./ da;
% PLOT:
figure(1)
subplot(2,1,1)
h1 = quiver(x, y, dxda, dyda)
set(h1,'AutoScale','on', 'AutoScaleFactor', 2)
axis equal square
title('Arrows 2')
subplot(2,1,2)
h2 = quiver(x, y, dxda, dyda)
set(h2,'AutoScale','on', 'AutoScaleFactor',0.5)
axis equal square
title('Arrows ½')
produces:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175153/image.png)
1 comentario
Más respuestas (1)
Geoff Hayes
el 24 de Jun. de 2014
From your code, grab the quivergroup handle that is returned from the quiver function
h = quiver(T,Y, scale.*DT, scale.*DY);
You can change the size (width) of the arrows from its default value of 0.5 as follows
set(h,'LineWidth',2)
Note that you could also do this at the line quiver(T,Y, scale.*DT, scale.*DY,'LineWidth',2);.
Try this and see what happens!
0 comentarios
Ver también
Categorías
Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!