如何在Matlab中绘制矢量场的方向和幅度?

时间:2015-04-13 07:34:04

标签: matlab plot

我想绘制一个带有方向的矢量场(我已经知道箭可以提供帮助),并将其幅度与颜色图联合起来。我看到另一个问题Link,其中thery建议使用HSV,但我希望看到箭头的方向与幅度作为热图。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

假设 MagnitudeMat 是一个带有矢量场magnistudes的m数组, positionsX positionsY 分别是长度为n和m的向量 MagnitudeMat 值(矢量放置)的位置, uuu vvv 是n个m个数组,分别是向量的x和y分量:

% [1] prepare x and y axis data for drawing                             
[XXX,YYY] = meshgrid(positionsX,positionsY);
% [2] draw the heat map of magnitudes
imagesc(positionsX,positionsY,MagnitudeMat);  
hold on;
% [3] plot streamlines and arrows for vector field
hSlices = streamslice(XXX,YYY,uuu,vvv)
hSlices2 = quiver(XXX,YYY,uuu,vvv);
% [4] some graphical settings
set(hSlices,'LineWidth',1,  'Color' , [.5 .5 .5]);
set(hSlices2,'LineWidth',2, 'Color', [.3 .3 .3]);
colormap('hot');
colorbar('location','eastoutside')

我希望这个例子有用:)