在 MATLAB 中删除对象句柄并保留变量

Posted

技术标签:

【中文标题】在 MATLAB 中删除对象句柄并保留变量【英文标题】:Delete object handle and keep variable in MATLAB 【发布时间】:2017-06-28 06:12:59 【问题描述】:

使用delete 函数,我可以删除对象句柄,但它也会从变量中删除对象属性。 有没有办法在不触及变量属性的情况下删除对象句柄?

例如,我有两个如下图,我删除了第一个。

figure;
h1 = plot( 1:10, '*' );
hold on
h2 = plot( 2:5, '.' );
delete( h1 );
h1.XData % returns an error, handle has been removed

h1 对象句柄已按预期从图中删除,但所有 h1 属性(XDataYData)也已删除。有没有办法保留h1 属性?在使用delete 之前是否一定需要备份属性?

【问题讨论】:

是的。在删除图形对象之前,您需要备份要保留的任何内容。 【参考方案1】:

不要删除h1,而是隐藏它:

h1.Visible = 'off';

而且你可以看到数据还在:

>> h1.XData
ans =
     1     2     3     4     5     6     7     8     9    10

【讨论】:

以上是关于在 MATLAB 中删除对象句柄并保留变量的主要内容,如果未能解决你的问题,请参考以下文章

matlab 如何保留变量值

如何在管理员中删除对象并保留父级?

matlab如何精确保留工作区内小数位数?

如何删除列表中重复的构造对象,同时保留顺序并在飞镖中返回列表?

MATLAB - 持久变量

Realm保留一个已删除的对象