获取0(根对象)的所有属性(包括隐藏的属性)

时间:2012-02-13 21:43:57

标签: matlab

似乎根对象a.k.a 0在Matlab中隐藏了属性。例如,DefaultTextInterpreter就是其中之一:

 x = get(0,'DefaultTextInterpreter');

当我使用

 get(0)

我得到一个很长的列表,包含DefaultTextInterpreter


甚至可以通过

设置undocumented properties
 set(0,'HideUndocumented','off');

似乎没有帮助。


如何找到根对象的所有属性,包括DefaultTextInterpreter

2 个答案:

答案 0 :(得分:9)

默认属性不是隐藏的也不是未记录的 - 它们可用于所有标准Handle Graphics属性,只需在属性名称前加上“Default”,以及对象类型(“Line”,“Axes”等)。这在the official documentation中有解释。

实际上,此机制也适用于隐藏/未记录的属性,如LineSmoothing属性shown

要查看所有支持的默认属性,请执行以下操作:

>> 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]

请注意,这不会返回未记录的默认值。您始终可以直接获取未记录的默认值:

>> get(0,'DefaultLineLineSmoothing')
ans =
off

<小时/> 既然我不能帮助自己:-),这里有一些现在真正无证的知识,它不回答OP问题,但它以某种方式相关。只对原始问题或纯文档/支持的内容感兴趣的读者可以安全地跳过此部分:

>> 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: []

在这个简单的代码片段中,请注意UDD hg.Figure类的position属性的默认值(FactoryValue)与根的DefaultFigurePosition属性返回的HG默认值不同。有关UDD属性的更多信息,请参见here

附录2013-02-13 :我刚刚发布了detailed article,解释了Matlab的默认值和工厂属性值如何工作,它们之间的关系以及它们如何相互关联访问。

答案 1 :(得分:2)

0是致电Root object。 (Setting Default Property Values

这不是问题的完整答案。我只想提醒您注意UndocumentedMatlab.com上的几篇文章:

它有来自Yair Altman - getundoc的巨大效用链接。但是它也没有显示默认属性。

我相信@Yair_Altman应该回答这个问题。