结合 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
尺寸,所以你的箭袋在某处,非常非常小在左下角。
如果你想让它们在图像之上,你将需要更改 x
和 y
值,但这很容易。将 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 但应该显示其他内容。
我正在尝试结合箭袋图和 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
尺寸,所以你的箭袋在某处,非常非常小在左下角。
如果你想让它们在图像之上,你将需要更改 x
和 y
值,但这很容易。将 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 但应该显示其他内容。