1

我正在尝试使用 for 循环内的注释在 matlab 图中显示一些数据。所以对于第一次迭代它工作文件,从第二次迭代开始,数据被覆盖。如下图所示。请告诉我如何清除以前的文本,以便在每次迭代中显示该迭代中产生的正确数据。 这里.

我的代码如下-

fig3=figure;
for i=1:10
...
...
D=distance(a,b);
figure(fig3), imshow(result_images{i},'InitialMagnification', 'fit');
annotation('textbox',...
[0 0.45 0.35 0.1],...
'String',['Measured Distance=' num2str(D)],...
'FontSize',40,...
'FontName','Arial',...
'EdgeColor',[1 1 0.9],...
'Color',[0.84 0.16 0]);
end
4

2 回答 2

2

最有效的解决方案是通过句柄重用注解:

% create the annotation and save its handle
h = annotation(...); % set all your formatting prefs with any string

for i=1:10,
    % do something to update D ...
    set(h,'String',['Measured Distance=' num2str(D)]); % fast and easy
end
于 2013-09-25T02:06:23.073 回答
1

最简单的解决方案是在注释中添加特定标签。

%# create the annotation
annotation('textbox',...
[0 0.45 0.35 0.1],...
'String',['Measured Distance=' num2str(D)],...
'FontSize',40,...
'FontName','Arial',...
'EdgeColor',[1 1 0.9],...
'Color',[0.84 0.16 0],...
'Tag' , 'somethingUnique');

%# delete the annotation
delete(findall(gcf,'Tag','somethingUnique'))

参考:从图中删除注释

于 2013-09-25T02:03:48.037 回答