它似乎是根对象,也就是0Matlab中隐藏的属性.例如,DefaultTextInterpreter 是其中之一:
x = get(0,'DefaultTextInterpreter');
Run Code Online (Sandbox Code Playgroud)
我用的时候
get(0)
Run Code Online (Sandbox Code Playgroud)
我得到一个很长的清单,其中不包括DefaultTextInterpreter.
甚至可以将未记录的属性设置为可见
set(0,'HideUndocumented','off');
Run Code Online (Sandbox Code Playgroud)
似乎没有帮助.
如何找到根对象的所有属性,包括DefaultTextInterpreter?
默认属性不是隐藏的也不是未记录的 - 它们可用于所有标准Handle Graphics属性,只需在属性名称前加上"Default",同时加上对象类型('Line','Axes'等).这在官方文档中有解释.
实际上,此机制也适用于隐藏/未记录的属性,如LineSmoothing属性所示.
要查看所有受支持的默认属性,请执行以下操作:
>> get(0,'Default')
ans =
defaultFigurePosition: [440 378 560 420]
defaultTextColor: [0 0 0]
defaultAxesXColor: [0 0 0]
defaultAxesYColor: [0 0 0]
defaultAxesZColor: [0 0 0]
defaultPatchFaceColor: [0 0 0]
defaultPatchEdgeColor: [0 0 0]
defaultLineColor: [0 0 0]
defaultFigureInvertHardcopy: 'on'
defaultFigureColor: [0.8 0.8 0.8]
defaultAxesColor: [1 1 1]
defaultAxesColorOrder: [7x3 double]
defaultFigureColormap: [64x3 double]
defaultSurfaceEdgeColor: [0 0 0]
defaultFigurePaperType: 'A4'
defaultFigurePaperUnits: 'centimeters'
defaultFigurePaperSize: [20.98404194812 29.67743169791]
Run Code Online (Sandbox Code Playgroud)
请注意,这不会返回未记录的默认值.您始终可以直接获取未记录的默认值:
>> get(0,'DefaultLineLineSmoothing')
ans =
off
Run Code Online (Sandbox Code Playgroud)
>> p = findprop(handle(gcf),'pos')
p =
schema.prop
>> p.get
Name: 'Position'
Description: ''
DataType: 'figurePositionType'
FactoryValue: [100 100 660 520]
AccessFlags: [1x1 struct]
Visible: 'on'
GetFunction: []
SetFunction: []
Run Code Online (Sandbox Code Playgroud)
在这个简单的代码片段中,请注意UDD hg.Figure类的position属性的默认值(FactoryValue)与根的DefaultFigurePosition属性返回的HG默认值不同.有关UDD属性的更多信息,请参见此处.
附录2013-02-13:我刚刚发布了一篇详细的文章,解释了Matlab的Default和Factory属性值如何工作,它们如何相互关联以及如何访问它们.