Notas de estudio Matlab_GUI (1) - conceptos básicos y operaciones de objetos

Notas de estudio Matlab_GUI (1) - conceptos básicos y operaciones de objetos


1. Objetos y asas

Tome la figura como ejemplo, ingrese en la línea de comando:

>>plot([0:10])
>>title('示例')

La imagen resultante

se puede ver como un subobjeto del escritorio, los ejes son subobjetos de la figura, y la curva de función y el título de "ejemplo" son subobjetos de los ejes.

  • gcf
    es el identificador de la figura actual, similar a ans, puede asignar gcf a la variable fig y luego llamar al subobjeto de la figura actual a través de fig

  • allchild
    Use el comando doc para ver el documento allchild de la siguiente manera y devuelva los identificadores de todos los objetos secundarios del objeto.

    Llame a allchild para ver todos los objetos secundarios de la figura actual

    >>allchild(gcf)
    
     ans = 
     11×1 graphics 数组:
    
    		Menu              (figMenuHelp)
    		Menu              (figMenuWindow)
    		Menu              (figMenuDesktop)
    		Menu              (figMenuTools)
    		Menu              (figMenuInsert)
    		Menu              (figMenuView)
    		Menu              (figMenuEdit)
    		Menu              (figMenuFile)
    		Toolbar           (FigureToolBar)
    		AnnotationPane
    		Axes              (示例)
    
  • Get
    obtiene todas las propiedades del objeto, llame a la función get para ver todas las propiedades de Axes

    >>get(ans(11))
    						 ALim: [0 1]
    	                   ALimMode: 'auto'
    	     ActivePositionProperty: 'outerposition'
    	                 AlphaScale: 'linear'
    	                   Alphamap: [1×64 double]
    	          AmbientLightColor: [1 1 1]
    	               BeingDeleted: 'off'
    	                        Box: 'on'
    	                   BoxStyle: 'back'
    	                 BusyAction: 'queue'
    	              ButtonDownFcn: ''
    	                       CLim: [0 1]
    	                   CLimMode: 'auto'
    	             CameraPosition: [6 5 17.3205]
    	         CameraPositionMode: 'auto'
    	               CameraTarget: [6 5 0]
    	           CameraTargetMode: 'auto'
    	             CameraUpVector: [0 1 0]
    	         CameraUpVectorMode: 'auto'
    	            CameraViewAngle: 6.6086
    	        CameraViewAngleMode: 'auto'
    	                   Children: [1×1 Line]
    	                   Clipping: 'on'
    	              ClippingStyle: '3dbox'
    	                      Color: [1 1 1]
    	                 ColorOrder: [7×3 double]
    	            ColorOrderIndex: 2
    	                 ColorScale: 'linear'
    	                   Colormap: [64×3 double]
    	                  CreateFcn: ''
    	               CurrentPoint: [2×3 double]
    	            DataAspectRatio: [5 5 1]
    	        DataAspectRatioMode: 'auto'
    	                  DeleteFcn: ''
    	                  FontAngle: 'normal'
    	                   FontName: 'Helvetica'
    	                   FontSize: 10
    	               FontSizeMode: 'auto'
    	              FontSmoothing: 'on'
    	                  FontUnits: 'points'
    	                 FontWeight: 'normal'
    	                  GridAlpha: 0.1500
    	              GridAlphaMode: 'auto'
    	                  GridColor: [0.1500 0.1500 0.1500]
    	              GridColorMode: 'auto'
    	              GridLineStyle: '-'
    	           HandleVisibility: 'on'
    	                    HitTest: 'on'
    	               Interactions: [1×1 matlab.graphics.interaction.interface.DefaultAxesInteractionSet]
    	              Interruptible: 'on'
    	    LabelFontSizeMultiplier: 1.1000
    	                      Layer: 'bottom'
    	                     Legend: [0×0 GraphicsPlaceholder]
    	             LineStyleOrder: '-'
    	        LineStyleOrderIndex: 1
    	                  LineWidth: 0.5000
    	             MinorGridAlpha: 0.2500
    	         MinorGridAlphaMode: 'auto'
    	             MinorGridColor: [0.1000 0.1000 0.1000]
    	         MinorGridColorMode: 'auto'
    	         MinorGridLineStyle: ':'
    	                   NextPlot: 'replace'
    	              OuterPosition: [0 0 1 1]
    	                     Parent: [1×1 Figure]
    	              PickableParts: 'visible'
    	         PlotBoxAspectRatio: [1 0.7882 0.7882]
    	     PlotBoxAspectRatioMode: 'auto'
    	                   Position: [0.1300 0.1100 0.7750 0.8150]
    	                 Projection: 'orthographic'
    	                   Selected: 'off'
    	         SelectionHighlight: 'on'
    	                 SortMethod: 'childorder'
    	                        Tag: ''
    	                    TickDir: 'in'
    	                TickDirMode: 'auto'
    	       TickLabelInterpreter: 'tex'
    	                 TickLength: [0.0100 0.0250]
    	                 TightInset: [0.0367 0.0527 0.0136 0.0544]
    	                      Title: [1×1 Text]
    	    TitleFontSizeMultiplier: 1.1000
    	            TitleFontWeight: 'normal'
    	                    Toolbar: [1×1 AxesToolbar]
    	                       Type: 'axes'
    	              UIContextMenu: [0×0 GraphicsPlaceholder]
    	                      Units: 'normalized'
    	                   UserData: []
    	                       View: [0 90]
    	                    Visible: 'on'
    	                      XAxis: [1×1 NumericRuler]
    	              XAxisLocation: 'bottom'
    	                     XColor: [0.1500 0.1500 0.1500]
    	                 XColorMode: 'auto'
    	                       XDir: 'normal'
    	                      XGrid: 'off'
    	                     XLabel: [1×1 Text]
    	                       XLim: [1 11]
    	                   XLimMode: 'auto'
    	                 XMinorGrid: 'off'
    	                 XMinorTick: 'off'
    	                     XScale: 'linear'
    	                      XTick: [1 2 3 4 5 6 7 8 9 10 11]
    	                 XTickLabel: {11×1 cell}
    	             XTickLabelMode: 'auto'
    	         XTickLabelRotation: 0
    	                  XTickMode: 'auto'
    	                      YAxis: [1×1 NumericRuler]
    	              YAxisLocation: 'left'
    	                     YColor: [0.1500 0.1500 0.1500]
    	                 YColorMode: 'auto'
    	                       YDir: 'normal'
    	                      YGrid: 'off'
    	                     YLabel: [1×1 Text]
    	                       YLim: [0 10]
    	                   YLimMode: 'auto'
    	                 YMinorGrid: 'off'
    	                 YMinorTick: 'off'
    	                     YScale: 'linear'
    	                      YTick: [0 1 2 3 4 5 6 7 8 9 10]
    	                 YTickLabel: {11×1 cell}
    	             YTickLabelMode: 'auto'
    	         YTickLabelRotation: 0
    	                  YTickMode: 'auto'
    	                      ZAxis: [1×1 NumericRuler]
    	                     ZColor: [0.1500 0.1500 0.1500]
    	                 ZColorMode: 'auto'
    	                       ZDir: 'normal'
    	                      ZGrid: 'off'
    	                     ZLabel: [1×1 Text]
    	                       ZLim: [-1 1]
    	                   ZLimMode: 'auto'
    	                 ZMinorGrid: 'off'
    	                 ZMinorTick: 'off'
    	                     ZScale: 'linear'
    	                      ZTick: [-1 0 1]
    	                 ZTickLabel: ''
    	             ZTickLabelMode: 'auto'
    	         ZTickLabelRotation: 0
    	                  ZTickMode: 'auto'
    
  • set
    opera en las propiedades de un objeto, llame a la función set para cambiar la propiedad de posición (posición) de los ejes de coordenadas, puede ver en las propiedades anteriores que el valor inicial de la propiedad de posición es Posición: [0.1300 0.1100 0.7750 0.8150 ], cambie su alto y ancho a continuación

    >>set(ans(11), 'position', [0.1300 0.1100 0.5 0.5])
    

    La figura cambiada se vuelve así.

  • findobj
    encuentra el identificador del objeto deseado. Por ejemplo, para encontrar el identificador del texto del título "Ejemplo" anterior, puede escribir

    findobj(allchild(gca), 'type', 'Text')
    

    Puede obtener varios objetos de texto estáticos en el video tutorial, pero estoy usando matlab2019a. Tal vez debido a la versión, gca es el atributo 'línea' y gcf es el atributo 'Ejes'

    >> allchild(gca)
    
    ans = 
    
      Line - 属性:
    
                  Color: [0 0.4470 0.7410]
              LineStyle: '-'
              LineWidth: 0.5000
                 Marker: 'none'
             MarkerSize: 6
        MarkerFaceColor: 'none'
                  XData: [1 2 3 4 5 6 7 8 9 10 11]
                  YData: [0 1 2 3 4 5 6 7 8 9 10]
                  ZData: [1×0 double]
    
      显示 所有属性
    
        AlignVertexCenters: 'off'
                Annotation: [1×1 matlab.graphics.eventdata.Annotation]
              BeingDeleted: 'off'
                BusyAction: 'queue'
             ButtonDownFcn: ''
                  Children: [0×0 GraphicsPlaceholder]
                  Clipping: 'on'
                     Color: [0 0.4470 0.7410]
                 CreateFcn: ''
           DataTipTemplate: [1×1 matlab.graphics.datatip.DataTipTemplate]
                 DeleteFcn: ''
               DisplayName: ''
          HandleVisibility: 'on'
                   HitTest: 'on'
             Interruptible: 'on'
                  LineJoin: 'round'
                 LineStyle: '-'
                 LineWidth: 0.5000
                    Marker: 'none'
           MarkerEdgeColor: 'auto'
           MarkerFaceColor: 'none'
             MarkerIndices: [1 2 3 4 5 6 7 8 9 10 11]
                MarkerSize: 6
                    Parent: [1×1 Axes]
             PickableParts: 'visible'
                  Selected: 'off'
        SelectionHighlight: 'on'
                       Tag: ''
                      Type: 'line'
             UIContextMenu: [0×0 GraphicsPlaceholder]
                  UserData: []
                   Visible: 'on'
                     XData: [1 2 3 4 5 6 7 8 9 10 11]
                 XDataMode: 'auto'
               XDataSource: ''
                     YData: [0 1 2 3 4 5 6 7 8 9 10]
               YDataSource: ''
                     ZData: [1×0 double]
               ZDataSource: ''
    

    A través de findobj(allchild(gca), 'String', '示例'), findobj(allchild(gcf), 'type', 'text'), findobj('type', 'text'), ninguno encontró un identificador findobj('String', '示例')para findobj(gca,'Type','text','String','示例')el objeto "ejemplo" del título. Si conoce su identificador, puede establecer los atributos del texto estático, como fuente, color, tamaño de fuente, etc., a través de la función de configuración.

2. Instancia de operación de objeto

Cree un gráfico de función dinámica de color simple llamando a la función directamente y configurando las propiedades del objeto

%界面
h = figure('Units','normalized',...		%单位归一化,使在0-1之间
    'Position', [0.2,0.2,0.5,0.5],...
    'Menu', 'none');

ha = axes('parent', h, 'Units', 'normalized',...		%坐标轴的父对象为图像figure
    'position',[0.1,0.1,0.8,0.8]);

hl = line('parent', ha, 'XData', [0:0.01:6],...			%函数曲线的父对象为坐标轴axes
    'YData', sin([0:0.01:6]), 'Color', 'r');

cstring = 'gbkay';
for k = 1:5
    set(hl, 'Color', cstring(k));
    pause(3);
end

Use get, set, findobj, doc y otras funciones para comprender y ejecutar este código.

Supongo que te gusta

Origin blog.csdn.net/Ucarrot/article/details/110387036
Recomendado
Clasificación