ylabel xlabel tag comando matlab vector plot

tag - xlabel latex matlab



¿Cómo dibujar vectores(vectores 2D/3D físicos) en MATLAB? (6)

Encontré esta función de arrow.m en MATLAB Central, que es perfecta para dibujar vectores con verdadera magnitud y dirección.

Quiero saber la forma más simple de trazar vectores en MATLAB . Por ejemplo:

a = [2 3 5]; b = [1 1 0]; c = a + b;

Quiero visualizar esta adición vectorial como método cabeza a cola / paralelogramo. ¿Cómo trazo estos vectores con una punta de flecha?


Estoy de acuerdo con Aamir que la sumisión arrow.m de Erik Johnson en MathWorks File Exchange es una muy buena opción. Puede usarlo para ilustrar los diferentes métodos de adición de vectores de la siguiente manera:

  • Método de punta a cola:

    o = [0 0 0]; %# Origin a = [2 3 5]; %# Vector 1 b = [1 1 0]; %# Vector 2 c = a+b; %# Resultant arrowStarts = [o; a; o]; %# Starting points for arrows arrowEnds = [a; c; c]; %# Ending points for arrows arrow(arrowStarts,arrowEnds); %# Plot arrows

  • Método de paralelogramo:

    o = [0 0 0]; %# Origin a = [2 3 5]; %# Vector 1 b = [1 1 0]; %# Vector 2 c = a+b; %# Resultant arrowStarts = [o; o; o]; %# Starting points for arrows arrowEnds = [a; b; c]; %# Ending points for arrows arrow(arrowStarts,arrowEnds); %# Plot arrows hold on; lineX = [a(1) b(1); c(1) c(1)]; %# X data for lines lineY = [a(2) b(2); c(2) c(2)]; %# Y data for lines lineZ = [a(3) b(3); c(3) c(3)]; %# Z data for lines line(lineX,lineY,lineZ,''Color'',''k'',''LineStyle'','':''); %# Plot lines


Lo hice de esta manera,

2D

% vectors I want to plot as rows (XSTART, YSTART) (XDIR, YDIR) rays = [ 1 2 1 0 ; 3 3 0 1 ; 0 1 2 0 ; 2 0 0 2 ; ] ; % quiver plot quiver( rays( :,1 ), rays( :,2 ), rays( :,3 ), rays( :,4 ) );

3D

% vectors I want to plot as rows (XSTART, YSTART, ZSTART) (XDIR, YDIR, ZDIR) rays = [ 1 2 0 1 0 0; 3 3 2 0 1 -1 ; 0 1 -1 2 0 8; 2 0 0 0 2 1; ] ; % quiver plot quiver3( rays( :,1 ), rays( :,2 ), rays( :,3 ), rays( :,4 ), rays( :,5 ), rays( :,6 ) );

Basado en la documentación de quiver y quiver3


No estoy seguro de una forma de hacerlo en 3D , pero en 2D puede usar el comando compass .


% draw simple vector from pt a to pt b % wtr : with respect to scale=0;%for drawin vectors with true scale a = [10 20 30];% wrt origine O(0,0,0) b = [10 10 20];% wrt origine O(0,0,0) starts=a;% a now is the origine of my vector to draw (from a to b) so we made a translation from point O to point a = to vector a c = b-a;% c is the new coordinates of b wrt origine a ends=c;% plot3(a(1),a(2),a(3),''*b'') hold on plot3(b(1),b(2),b(3),''*g'') quiver3(starts(:,1), starts(:,2), starts(:,3), ends(:,1), ends(:,2), ends(:,3),scale);% Use scale = 0 to plot the vectors without the automatic scaling. % axis equal hold off


a = [2 3 5]; b = [1 1 0]; c = a+b; starts = zeros(3,3); ends = [a;b;c]; quiver3(starts(:,1), starts(:,2), starts(:,3), ends(:,1), ends(:,2), ends(:,3)) axis equal