Matlab 如何将文字居中放置在直线上

Matlab 如何将文字居中放置在直线上,matlab,Matlab,我想要一个以直线为中心的文本字符串。我试过这个: figure axis([0,10,0,10]) d = 2.81; center = 5; line([center - d,center + d],[5,5]) th = text(center,4.9,'mmmmmmmmmmmmmmmmmmmmmm'); set(th,'HorizontalAlignment','center') 文本与右侧的行对齐,但不与左侧对齐。上图是一个屏幕截图。在保存的图形版本中,我并不总是遇到这个问题 有没有

我想要一个以直线为中心的文本字符串。我试过这个:

figure
axis([0,10,0,10])
d = 2.81;
center = 5;
line([center - d,center + d],[5,5])
th = text(center,4.9,'mmmmmmmmmmmmmmmmmmmmmm');
set(th,'HorizontalAlignment','center')

文本与右侧的行对齐,但不与左侧对齐。上图是一个屏幕截图。在保存的图形版本中,我并不总是遇到这个问题


有没有办法将文本居中放置在一行上?我现在不关心调整数字的大小,但我想使用默认字体

似乎不可能任意精确地定位文本。我试着获得文本和绘图线的大小,并相应地重新定位文本。有关文本属性的详细信息

str1 = 'mmmmmmmmmmmmmmmmmmmmmm';
center = 5;
text_line_spacing = 0.2;

figure
axis([0,10,0,10])

% Set text initialy
th = text(0,0,str1);

% Get size of text
ext = get(th, 'Extent');  
% text_width = ext(3);
% text_height = ext(4);

% Draw appropriate line
left = center - ext(3)/2; 
right = center + ext(3)/2;
line([left right], [5 5])

% Reposition original text
set(th, 'Position', [left 5+text_line_spacing]);