2012-02-13 54 views
7

Dường như đối tượng gốc, a.k.a 0 có các thuộc tính ẩn trong Matlab. Ví dụ, DefaultTextInterpreter là một trong số họ:Bắt tất cả các thuộc tính (Bao gồm cả các thuộc tính ẩn) của 0 (Đối tượng gốc)

x = get(0,'DefaultTextInterpreter'); 

Khi tôi sử dụng

get(0) 

tôi nhận được một danh sách dài, mà không bao gồm DefaultTextInterpreter.


Ngay cả thiết undocumented properties để được nhìn thấy bởi

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

dường như không giúp đỡ.


Làm thế nào tôi có thể tìm thấy tất cả của các thuộc tính của đối tượng gốc, bao gồm DefaultTextInterpreter?

Trả lời

9

Thuộc tính mặc định không bị ẩn hoặc không có giấy tờ - chúng có sẵn cho tất cả các thuộc tính Xử lý đồ họa chuẩn bằng cách đặt tiền tố 'Mặc định' vào tên thuộc tính, cùng với loại đối tượng ('Đường', 'Trục', v.v.). Điều này được giải thích trong the official documentation.

Thực tế, cơ chế này cũng hoạt động đối với các thuộc tính ẩn/không có tài liệu, dưới dạng shown cho thuộc tính LineSmoothing.

Để xem tất cả các thuộc tính mặc định hỗ trợ, làm như sau:

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

Lưu ý rằng điều này không trở về giá trị mặc định không có giấy tờ. Bạn luôn có thể giá trị mặc định không có giấy tờ trực tiếp:

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


Vì tôi không thể giúp bản thân mình :-), đây là một chút kiến ​​thức bây giờ thực sự-không có giấy tờ, mà không trả lời câu hỏi OP nhưng nó bằng cách nào đó liên quan.Độc giả chỉ quan tâm đến câu hỏi ban đầu hoặc trong hoàn toàn như các tài liệu stuff/hỗ trợ có thể an toàn bỏ qua phần này:

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

Trong đoạn đơn giản này, lưu ý rằng mặc định (FactoryValue) cho vị trí tài sản của UDD hg .Định dạng lớp khác với mặc định HG được trả về bởi thuộc tính DefaultFigurePosition của root. Thông tin thêm về các thuộc tính UDD có thể được tìm thấy here.

Hợp đồng bổ sung 2013-02-13: Tôi vừa mới đăng detailed article giải thích cách giá trị thuộc tính Mặc định và Nhà máy hoạt động, cách chúng có liên quan với nhau và cách chúng có thể được truy cập.

+0

Cảm ơn thông tin. Vì vậy, về cơ bản tôi cần phải làm 'get (0, 'Default')' để xem tất cả chúng. Bạn có thể vui lòng thêm thực tế này vào câu trả lời của bạn, cho người khác không? –

+1

Tôi có thể bỏ lỡ nó như thế nào? Tôi thậm chí còn ở trên trang đó! Câu trả lời tuyệt vời, @Yair, như thường lệ. Điều chỉnh duy nhất: nó không chỉ đơn giản là tiền tố 'Mặc định', mà còn thêm kiểu đối tượng - 'Dòng', 'Trục', v.v. Tôi cũng tò mò về cơ chế này khác với việc nhận các đặc tính HG chuẩn. – yuk

2

0 là gọi Root object. (Setting Default Property Values)

Đây không phải là câu trả lời đầy đủ cho câu hỏi. Tôi chỉ muốn để có được sự chú ý của bạn để vài bài viết ở UndocumentedMatlab.com:

Nó có một liên kết đến tiện ích tuyệt vời từ Yair Altman - getundoc. Tuy nhiên nó cũng không hiển thị các thuộc tính mặc định.

Tôi tin rằng @Yair_Altman là người nên trả lời câu hỏi này.

+0

Cảm ơn câu trả lời của bạn! Tôi tìm thấy liên kết đó và thậm chí đã viết trong câu hỏi của tôi về tập hợp (0, 'Ẩn tài liệu', 'tắt'); Nhưng nó dường như không giúp ích gì với 'DefaultTextInterpreter' –

+0

Vâng, tôi nghĩ bạn đã biết về bài viết. Nhưng vì liên kết không có trong câu hỏi, tôi đặt nó ở đây. – yuk

+0

Vâng, dù sao đi nữa, (+1), vì câu trả lời có thể giúp người khác –

Các vấn đề liên quan