2016-07-25 63 views
0

我想颤抖情节和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)它的工作原理,它们叠加在一起,但有太多箭头和我想调整抖动情节。

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

+0

“不起作用”? PC爆炸1000件?错误?一切都是琥珀色的? –

+0

我也无法使它与step = 1一起工作,所以你如何让它们一起工作? –

+0

当我只使用'颤抖(vx,vy)',那么它工作正常。如果我明确设置了步骤,那么只显示'imagesc' – BillyJean

回答

1

问题是颤抖是在别的地方。

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

如果你想让它们位于图像的顶部,你将需要更改xy的值,但它很容易。通过更换颤动电话:

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) 

enter image description here

另外请注意,您的轴是错误的,他们表现出1:5,但应该表现出别的东西。

+1

,您还可以使用:imagesc([x_min x_max],[y_min y_max],vz)'来定义图像的x和y限制。 – obchardon

+0

@obchardon哦...不知道这一点。考虑添加它作为一个asnwer! –