结合 quiver 和 imagesc

Combining quiver and imagesc

我正在尝试结合箭袋图和 imagesc,这是我的脚本:

x=[0    0.0125    0.0250    0.0375    0.0500,
     0    0.0125    0.0250    0.0375    0.0500,
     0    0.0125    0.0250    0.0375    0.0500,
     0    0.0125    0.0250    0.0375    0.0500,
     0    0.0125    0.0250    0.0375    0.0500];

 y=[0         0         0         0         0,
0.0125    0.0125    0.0125    0.0125    0.0125,
0.0250    0.0250    0.0250    0.0250    0.0250,
0.0375    0.0375    0.0375    0.0375    0.0375,
0.0500    0.0500    0.0500    0.0500    0.0500];

vx=[0.0009   -0.0019   -0.0058   -0.0040   -0.0028,
0.0012    0.0159    0.1207    0.1465    0.0985,
0.0007    0.0018   -0.0367    0.2432   -0.0053,
0.0004    0.0920    0.1796    0.3807    0.0338,
-0.0006    0.1708    0.1764    0.2567    0.1256];

vy=[0.0002    0.0000   -0.0001   -0.0001   -0.0001,
-0.0003   -0.0156   -0.0076   -0.0251   -0.0433,
-0.0008   -0.0113   -0.0218   -0.0519   -0.0720,
-0.0006   -0.0091   -0.0326   -0.0778   -0.1087,
-0.0003   -0.0026   -0.0025   -0.0416   -0.1048];


vz=[0.0002    0.0000   -0.0001   -0.0001   -0.0001,
-0.0003   -0.0156   -0.0076   -0.0251   -0.0433,
-0.0008   -0.0113   -0.0218   -0.0519   -0.0720,
-0.0006   -0.0091   -0.0326   -0.0778   -0.1087,
-0.0003   -0.0026   -0.0025   -0.0416   -0.1048];

figure(1)
imagesc(vz)
hold on

step = 2;
quiver(x(1:step:end,1:step:end), y(1:step:end,1:step:end), vx(1:step:end,1:step:end), vy(1:step:end,1:step:end), 'ShowArrowHead','on', 'AutoScaleFactor',1) 
hold off

如果我只使用 quiver(vx,vy) 它可以工作并且它们被组合在一起,但是箭头太多,我想调整箭袋图。

但是,当我手动更改示例中的参数时,组合它们不起作用。是否有可能以某种方式将它们组合起来?

问题是箭袋在别处。

你的 x 和 y 都是关于 0.05 最大尺寸,但是当你使用 imagesc 时每个像素都是 1 尺寸,所以你的箭袋在某处,非常非常小在左下角。

如果你想让它们在图像之上,你将需要更改 xy 值,但这很容易。将 quiver 调用替换为:

quiver((x(1:step:end,1:step:end))*(size(vz,1)-1)/max(x(:))+1, y(1:step:end,1:step:end)*(size(vz,2)-1)/max(y(:))+1, vx(1:step:end,1:step:end), vy(1:step:end,1:step:end), 'ShowArrowHead','on', 'AutoScaleFactor',1) 

另请注意,您的轴是错误的,它们显示 1:5 但应该显示其他内容。