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

Check whether there is a text at certain location on Matlab figure

有没有可能在打印某个位置之前检查Matlab图形上某个位置是否有文本?

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

您可以使用 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');

图形是这样的:

%// 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

这样就很容易验证给定位置没有文本对象。

这是你的意思吗?