如果要通过属性结构复制绘图,则需要过滤掉只读属性(例如 Annotation、BeingDeleted、Parent、Type)。有没有办法获取对象的只读属性列表?
这个问题来自一个相关的问题
如果要通过属性结构复制绘图,则需要过滤掉只读属性(例如 Annotation、BeingDeleted、Parent、Type)。有没有办法获取对象的只读属性列表?
这个问题来自一个相关的问题
我开始琢磨上一个问题,试图动态找出哪些字段是可设置的。
我并没有完全让它工作,但我可以通过使用 和 的返回值之间的差异来掌握(大部分)只读set(h)
属性get(h)
。
唯一没有出现在这里的属性是Parent
-property,它是可设置的,但不应该在上一个问题中更改。
这是我获得不可设置属性的方式:
h = plot(1:0.2:10);
xx=get(h)
close all
h2 = plot(0);
settableHandles = set(h2);
settableNames = fieldnames(settableHandles);
allHandles = get(h2);
allNames = fieldnames(allHandles);
nonSettableHandles = rmfield(allHandles,settableNames);
nonSettableNames = fieldnames(nonSettableHandles)
这会产生一个单元格nonSettableNames
:
nonSettableNames =
'Annotation'
'BeingDeleted'
'Type'
为什么不使用类似的东西
try
%// [set property]
catch ME
if ~isempty( regexp(ME.error, 'read only') )
continue;
else
%// [handle other error]
end
end