2010-09-30 2 views
6

Я хотел бы добавить стрелки к графику линии в Matlab, чтобы проиллюстрировать поток. Стрелки в идеале были бы на линии, указывающей в направлении линии. Это возможно?Как добавить стрелки в линейные графики в Matlab?

+1

Возможный дубликат [Как отобразить стрелку, расположенную под определенным углом в MATLAB?] (Http://stackoverflow.com/questions/1803043/how-do-i-display-an-arrow-positioned-at -a-специфический угол-в-MATLAB) – gnovice

ответ

1

Функция колчана должна быть в состоянии делать то, что вы хотите. Однако вам придется самому вычислить направление стрелки.

Что-то вдоль линий это некрасиво, но должны вам начать (но вы, вероятно, хотите, чтобы нормализовать вектор направления, чтобы получить более хороший график)

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

Если я правильно понял, вы пытаетесь просмотреть векторное поле? Если это так, вот рабочий пример:

%# 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

Для того, чтобы нарисовать стрелку в Matlab, использовать бесплатный пакет обмена файл под названием arrow.m

0

Вы можете добавить стрелка к фигуре, используя функцию annotation.

Обратите внимание, что родительский объект не является осями, а в окне рисунка iteslf (это означает, что при увеличении/уменьшении стрелки стрелка держится в том же месте в окне рисунка).

Смежные вопросы