2012-02-13 65 views
7

似乎根對象,a.k.a 0在Matlab中具有隱藏屬性。例如,DefaultTextInterpreter就是其中之一:獲取0(根對象)的所有屬性(包括隱藏屬性)

x = get(0,'DefaultTextInterpreter'); 

當我使用

get(0) 

我得到一個長長的名單,其中包括DefaultTextInterpreter


即使設置undocumented properties可見由

set(0,'HideUndocumented','off'); 

似乎並沒有幫助。


我怎樣才能找到所有根對象的屬性,包括DefaultTextInterpreter

回答

9

默認屬性不會隱藏也不會被記錄 - 只需在屬性名稱前加上'Default'和對象類型('Line','Axes'等),即可用於所有標準Handle Graphics屬性。這在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 


因爲我不能幫助自己:-),這裏有一點現在已經真正-無證知識,不回答這個問題的任擇議定書,但不知何故有關。讀者誰是隻在原來的問題或純粹的詳細記錄/支持的東西,有興趣的可以跳過這部分:

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

在這個簡單的代碼片段,注意缺省(FactoryValue)爲UDD汞的位置屬性.Figure類與根的DefaultFigurePosition屬性返回的HG默認值不同。有關UDD屬性的更多信息,請參閱here

附錄2013年2月13日:我剛剛發佈了detailed article解釋Matlab的默認和工廠的屬性值是如何工作的,它們是如何相互關聯,以及如何進行訪問。

+0

感謝您的信息。所以基本上我需要'get(0,'Default')'來查看所有這些。您能否將這個事實添加到您的答案中,供其他人使用? – 2012-02-14 14:01:35

+1

我怎麼會錯過它?我甚至在那頁上!很好的答案,@Yair,照常。唯一的修正:它不是簡單地在「Default」前添加,而是添加對象類型 - 'Line','Axes'等。我也很好奇這種機制與獲得標準HG屬性的方式不同。 – yuk 2012-02-14 15:30:52

2

0是調用Root object。 (Setting Default Property Values

這不是問題的完整答案。我只是想在UndocumentedMatlab.com得到您的關注幾篇文章:

它有一個鏈接從亞伊爾奧特曼非常實用 - getundoc。但它也不顯示默認屬性。

我認爲@Yair_Altman是應該回答這個問題的人。

+0

感謝您的回答!我發現了這個鏈接,甚至在我關於set的問題中寫了(0,'HideUndocumented','off');但它似乎沒有幫助'DefaultTextInterpreter' – 2012-02-13 22:39:08

+0

是的,我認爲你知道這篇文章。但既然鏈接不在問題中,我就把它放在這裏。 – yuk 2012-02-13 22:46:18

+0

好吧,無論如何,(+1),因爲答案可能會幫助其他人 – 2012-02-13 22:49:11