【发布时间】:2010-09-30 12:41:43
【问题描述】:
我想在 Matlab 中的线图中添加箭头来说明流程。理想情况下,箭头应位于指向直线方向的直线上。这可能吗?
【问题讨论】:
我想在 Matlab 中的线图中添加箭头来说明流程。理想情况下,箭头应位于指向直线方向的直线上。这可能吗?
【问题讨论】:
为了在 Matlab 中绘制箭头,请使用名为 arrow.m 的文件交换免费包
【讨论】:
另一种方法是在 FileExchange 上使用出色的提交 - ARROW.M
另请参阅关于 SO 的其他相关问题:
【讨论】:
quiver 功能应该可以做你想做的事。但是,您必须自己计算箭头的方向。
类似的东西很丑,但应该让你开始(但你可能想要标准化方向向量以获得更好的图形)
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))
【讨论】:
如果我理解正确,您是在尝试查看矢量场吗? 如果是这种情况,这里有一个工作示例:
%# 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)
【讨论】:
您可以使用函数annotation向图形添加箭头。
注意,对象的父对象不是坐标轴,而是图形窗口iteslf(这意味着当您放大/缩小时,箭头会保持在图形窗口中的同一位置)。
【讨论】: