我想在Matlab中用线条绘制箭头来说明流程。理想情况下,箭头位于指向线方向的线上。这可能吗?
答案 0 :(得分:5)
要在Matlab中绘制箭头,请使用名为arrow.m
的文件交换免费软件包答案 1 :(得分:3)
另一种方法是在FileExchange上使用出色的提交 - ARROW.M
另见关于SO的其他相关问题:
答案 2 :(得分: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))
答案 3 :(得分: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)
答案 4 :(得分:0)
您可以使用函数annotation
为图添加箭头。
请注意,对象的父级不是轴,而是图形窗口iteslf(意味着当您放大/缩小时,箭头将保持在图形窗口中的相同位置)。