检查Matlab图上某个位置是否有文字

时间:2015-02-28 22:00:06

标签: matlab figure

在该地点打印一些文字之前,是否有可能检查Matlab图上某个位置是否有文字?

我的意思是,有时候如果我们有很多曲线,如果我们添加一些音符,它们可能会在某些地方重叠。所以我想根据之前文本之间的距离来调整笔记显示位置。

1 个答案:

答案 0 :(得分:1)

您可以使用findobj查找文本对象,并像使用图形对象的任何属性一样获取位置。

示例:

clear
clc

%// Create/plot data
x = -10:10;
y1 = x.^2;
y2 = 2*x-10;

plot(x,y1,'--r',x,y2,'-*k')

%// Add some text
t1 = text(-6,10,'Curve 1');
t2 = text(6,-4,'Curve 2');

该图如下所示:

enter image description here

%// Find text objects. Of course normally you would not know beforehand
%their position

hText = findobj('Type','Text');

%// Get their position
Text1Pos = get(hText(1),'Position')
Text2Pos = get(hText(2),'Position')

这些变量如下所示:

Text1Pos =

     6    -4     0


Text2Pos =

    -6    10     0

因此,很容易确认在给定位置没有文本对象。

这是你的意思吗?