2010-09-30 35 views
6

Tôi muốn thêm các mũi tên vào ô của một dòng trong Matlab để minh họa luồng. Các mũi tên lý tưởng sẽ nằm trên đường thẳng theo hướng của đường kẻ. Điều này có thể không?Làm cách nào để thêm mũi tên vào các ô trong Matlab?

+1

bản sao có thể có của [Làm cách nào để hiển thị mũi tên được đặt ở một góc cụ thể trong MATLAB?] (Http://stackoverflow.com/questions/1803043/how-do-i-display-an-arrow-positioned-at -a-cụ thể-góc-trong-matlab) – gnovice

Trả lời

1

Chức năng rung sẽ có thể thực hiện những gì bạn muốn. Tuy nhiên, bạn sẽ phải tính toán hướng của mũi tên.

Something dọc theo dòng của việc này là xấu xí nhưng sẽ giúp bạn bắt đầu (nhưng có thể bạn muốn bình thường hóa các vector hướng để có được một đồ thị đẹp hơn)

plot(x,y) 
hold on 
quiver(x(1:end-1), y(1:end-1), ones(len(x)-1,1), y(2:end) - y(1:end-1)) 
1

Nếu tôi hiểu đúng, bạn đang cố gắng để xem một trường vector? Nếu đó là trường hợp, đây là một ví dụ làm việc:

%# function: f(x,y)=x^3-2y^2-3x over x=[-2,2], y=[-1,1] 
[X Y] = meshgrid(-2:.1:2, -1:.1:1); 
Z = X.^3 -2*Y.^2 -3*X; 

%# gradient of f 
[dX dY] = gradient(Z, .1, .1); 

%# plot the vector field and contour levels 
figure, hold on 
quiver(X, Y, dX, dY) 
contour(X, Y, Z, 10) 
axis equal, axis([-2 2 -1 1]) 
hold off 

%# plot surface 
figure, surfc(X, Y, Z) 
view(3) 

vector field saddle surface

5

Để vẽ một mũi tên trong Matlab, sử dụng gói trao đổi tập tin miễn phí có tên arrow.m

0

Bạn có thể thêm một mũi tên đến một hình bằng cách sử dụng hàm annotation.

Lưu ý rằng cha mẹ của đối tượng không phải là trục, nhưng cửa sổ hình iteslf (có nghĩa là khi bạn phóng to/thu nhỏ, mũi tên giữ trên cùng một vị trí trong cửa sổ hình).

Các vấn đề liên quan