2017-01-11 36 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