如果要通过属性结构复制绘图,则需要过滤掉只读属性(例如Annotation,BeingDeleted,Parent,Type)。有没有办法获取对象的只读属性列表?
问题来自相关问题
答案 0 :(得分:6)
我开始讨论上一个问题,试图动态找出哪些字段可以设置。
我没有完全开始工作,但我可以通过使用set(h)
和get(h)
的返回值之间的差异来掌握(大部分)只读属性。
此处未显示的唯一属性是Parent
- 属性,该属性是可设置的,但在上一个问题中不应更改。
以下是我获得不可设置属性的方法:
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'
答案 1 :(得分:2)
为什么不使用像
这样的东西try
%// [set property]
catch ME
if ~isempty( regexp(ME.error, 'read only') )
continue;
else
%// [handle other error]
end
end