2012-02-13 11 views
7

Wygląda na to, że obiekt główny, a.k.a 0 ma ukryte właściwości w Matlabie. Na przykład, DefaultTextInterpreter jest jednym z nich:Uzyskiwanie wszystkich właściwości (w tym ukrytych) 0 (Obiekt główny)

x = get(0,'DefaultTextInterpreter'); 

Gdy używam

get(0) 

mam długą listę, która nie obejmują DefaultTextInterpreter.


Nawet ustawienie undocumented properties być widoczny przez

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

nie wydaje się pomóc.


Jak znajdę wszystko z właściwości obiektu głównego, w tym DefaultTextInterpreter?

Odpowiedz

9

Właściwości domyślne nie są ukryte ani nieudokumentowane - są dostępne dla wszystkich standardowych właściwości graficznych uchwytów poprzez proste dodanie prefiksu "Domyślne" do nazwy właściwości wraz z typem obiektu ("Linia", "Osie" itp.). Zostało to wyjaśnione w the official documentation.

W rzeczywistości ten mechanizm działa również dla ukrytych/nieudokumentowanych właściwości, jako shown dla właściwości LineSmoothing.

Aby zobaczyć wszystkie obsługiwane domyślne właściwości, wykonaj następujące czynności:

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

Należy pamiętać, że to nie zwraca nieudokumentowanych domyślne. Zawsze można uzyskać bezpośrednio nielegalni domyślnie:

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


Ponieważ nie mogę się powstrzymać :-), oto trochę teraz-naprawdę-nieudokumentowane wiedzy, która nie odpowiada na pytanie OP ale jakoś związane z.Czytelnicy, którzy są zainteresowani wyłącznie w oryginalnym pytanie czy w czysto udokumentowanej/obsługiwanym rzeczy można bezpiecznie pominąć tę część:

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

W tym prostym fragmencie, trzeba pamiętać, że domyślnym (FactoryValue) dla właściwości położenia Udd Hg .Figure klasa jest inna niż domyślna wartość HG zwracana przez właściwość DefaultFigurePosition w katalogu głównym. Więcej informacji na temat właściwości UDD można znaleźć here.

Uzupełnienie 13.02.2013: Właśnie napisali detailed article wyjaśniający, jak działają Domyślnie MATLAB i wartości nieruchomości fabryczne, jak odnoszą się one do siebie, i jak można je uzyskać.

+0

Dzięki za informację. Więc zasadniczo muszę zrobić 'get (0, 'Default')', aby zobaczyć wszystkie z nich. Czy możesz dodać ten fakt do swojej odpowiedzi, dla innych ludzi? –

+1

Jak mogłem tęsknić? Byłem nawet na tej stronie! Świetna odpowiedź, @Yair, jak zwykle. Jedyna korekta: nie jest to po prostu prefiks "Domyślnie", ale także dodanie typu obiektu - "Linia", "Osie" itp. Jestem także ciekawy, jak ten mechanizm różni się od uzyskania standardowych właściwości HG. – yuk

2

0 to połączenie Root object. (Setting Default Property Values)

To nie jest pełna odpowiedź na pytanie. Chcę tylko, aby zwrócić uwagę na kilka artykułów na UndocumentedMatlab.com:

Ma link do wielkiej użyteczności z Yair Altmana - getundoc. Jednak nie pokazuje również domyślnych właściwości.

Wierzę, że @Yair_Altman jest tym, który powinien odpowiedzieć na to pytanie.

+0

Dzięki za odpowiedź! Znalazłem ten link, a nawet napisałem w moim pytaniu o zestaw (0, "HideUndocumented", "off"); Ale wydaje się, że nie pomaga to w "DefaultTextInterpreter". –

+0

Tak, myślałem, że wiesz o tym artykule. Ale ponieważ link nie był w tym pytaniu, umieściłem go tutaj. – yuk

+0

Cóż, tak czy inaczej (+1), ponieważ odpowiedź może pomóc komuś innemu –

Powiązane problemy