检查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
这样就很容易验证给定位置没有文本对象。
这是你的意思吗?
有没有可能在打印某个位置之前检查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
这样就很容易验证给定位置没有文本对象。
这是你的意思吗?