2016-07-25 82 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! –