2017-01-11 77 views
1

我創造的尺寸(7x24小時),我有數據的彩色地圖,讓一些隨機數歸一化單位不加起來

b = randi(50,7,24); 
t = imagesc(b,[min(min(b)) max(max(b))]); 

現在更換序添加註釋我必須知道準確的開始和我軸線的終點,這樣我可以添加一個矩形選擇圖像現在

xPOSITION = get(gca,'Position') 

xPOSITION = 

    0.1300 0.1100 0.7750 0.8150 

annotation('rectangle',[0.13 0.11 (0.7750 - 0.13)/24 (0.8150 -0.11)/7],'FaceColor','blue','FaceAlpha',.2) 

確定在每一個點,當我嘗試註釋添加到數據的準確起點,起點點似乎很好,但實際上應該是矩形的大小等於每個點都很小 enter image description here 根據我的計算,每個方框等於(0.7750 - 0.13)/ 24 X(0.8150 -0.11)/ 7,因爲單位已歸一化,我在計算中是否有任何錯誤?或者註釋以不同的方式工作?任何幫助,將不勝感激

UPDATE只是爲了測試我添加0.11〜註釋的每個維度,它似乎是原因的確切大小我無法弄清楚

annotation('rectangle',[0.13 0.11 ((0.7750 - 0.13) +0.11)/24 ((0.8150 -0.11)+0.11)/7],'FaceColor','blue','FaceAlpha',.2) 

enter image description here

回答

2

Position屬性是[left bottom width height]不是[left bottom right top],因爲它似乎你正在對待它(因爲你從4和3減去元素1)。要正確計算顯示的rect,您只需要將widthheight組件除以這些維度中的元素數。

annotation('rectangle', [xPOSITION(1), xPOSITION(2), ... 
         xPOSITION(3)/size(b, 2), xPOSITION(4)/size(b,1)]) 

或者更簡單地說:

annotation('rectangle', xPOSITION ./ [1 1 fliplr(size(b))]) 

enter image description here

話雖這麼說,如果你只是想畫上你的數據矩形,你很可能會更好只是創建rectangle對象自動以您的數據爲單位

rectangle('Position', [0.5 6.5 1 1], 'LineWidth', 5) 
+0

ohh!我現在意識到我的錯誤,感謝幫助它現在完美地工作 – Umar

+0

謝謝我現在得到它 – Umar