Documentation Center

  • Trial Software
  • Product Updates

set

Set Handle Graphics object properties

Syntax

set(H,'PropertyName',PropertyValue,...)
set(H,a)
set(H,pn,pv,...)
set(H,pn,MxN_pv)
a = set(h)
pv = set(h,'PropertyName')

Description

set(H,'PropertyName',PropertyValue,...) sets the named properties to the specified values on the object(s) identified by H. H can be a vector of handles, in which case set sets the properties' values for all the objects. If H is empty (that is, []), set does nothing, but does not return an error or warning.

set(H,a) sets the named properties to the specified values on the object(s) identified by H. a is a structure array whose field names are the object property names and whose field values are the values of the corresponding properties.

set(H,pn,pv,...) sets the named properties specified in the cell array pn to the corresponding value in the cell array pv for all objects identified in H.

set(H,pn,MxN_pv) sets n property values on each of m graphics objects, where m = length(H) and n is equal to the number of property names contained in the cell array pn. This allows you to set a given group of properties to different values on each object.

a = set(h) returns the user-settable properties and possible values for the object identified by h. a is a structure array whose field names are the object's property names and whose field values are the possible values of the corresponding properties. If you do not specify an output argument, the MATLAB® software displays the information on the screen. h must be scalar.

pv = set(h,'PropertyName') returns the possible values for the named property. If the possible values are strings, set returns each in a cell of the cell array pv. For other properties, set returns a statement indicating that PropertyName does not have a fixed set of property values. If you do not specify an output argument, MATLAB displays the information on the screen. h must be scalar.

    Note:   Consult the specific object page (figure, axes, and so on) to determine what properties you can set.

Examples

Set the Color property of the current axes to blue.

axes;
set(gca,'Color','b')

Change all the lines in a plot to black.

plot(peaks)
set(findobj('Type','line'),'Color','k')

You can define a group of properties in a structure to better organize your code. For example, these statements define a structure called active, which contains a set of property definitions used for the uicontrol objects in a particular figure. When this figure becomes the current figure, MATLAB changes the colors and enables the controls.

active.BackgroundColor = [.7 .7 .7];
active.Enable = 'on';
active.ForegroundColor = [0 0 0];

if gcf == control_fig_handle
   set(findobj(control_fig_handle,'Type','uicontrol'),active)
end

You can use cell arrays to set properties to different values on each object. For example, these statements define a cell array to set three properties,

PropName(1) = {'BackgroundColor'};
PropName(2) = {'Enable'};
PropName(3) = {'ForegroundColor'};

These statements define a cell array containing three values for each of three objects (i.e., a 3-by-3 cell array).

PropVal(1,1) = {[.5 .5 .5]}; 
PropVal(1,2) = {'off'}; 
PropVal(1,3) = {[.9 .9 .9]};
PropVal(2,1) = {[1 0 0]}; 
PropVal(2,2) = {'on'}; 
PropVal(2,3) = {[1 1 1]};
PropVal(3,1) = {[.7 .7 .7]}; 
PropVal(3,2) = {'on'}; 
PropVal(3,3) = {[0 0 0]};

Now pass the arguments to set,

set(H,PropName,PropVal)

where length(H) = 3 and each element is the handle to a uicontrol.

Setting Different Values for the Same Property on Multiple Objects

Suppose you want to set the value of the Tag property on five line objects, each to a different value. Note how the value cell array needs to be transposed to have the proper shape.

h = plot(rand(5));
set(h,{'Tag'},{'line1','line2','line3','line4','line5'}')

Setting Different Values for Multiple Properties on Multiple Objects

Suppose you want to set the values of the Marker and Tag properties on three different stemseries objects to different values. Each row of the value cell array corresponds to an object in h and contains two values, one for the Marker property and one for the Tag property.

x = 0:30;
y = [1.5*cos(x);4*exp(-.1*x).*cos(x);exp(.05*x).*cos(x)]';
h = stem(x,y);
set(h,{'Marker','Tag'},...
   {'o','Decaying Exponential';...
   'square','Growing Exponential';...
   '*','Steady State'})

More About

expand all

Tips

You can use any combination of property name/property value pairs, structure arrays, and cell arrays in one call to set.

Setting Property Units

Note that if you are setting both the FontSize and the FontUnits properties in one function call, you must set the FontUnits property first so that the MATLAB software can correctly interpret the specified FontSize. The same applies to figure and axes uints — always set the Units property before setting properties whose values you want to be interpreted in those units. For example,

f = figure('Units','characters',...
        'Position',[30 30 120 35]);

See Also

| | | | |

Was this topic helpful?