Main Content

uilamp

Create lamp component

Description

lmp = uilamp creates a lamp in a new figure window and returns the Lamp object. MATLAB® calls the uifigure function to create the figure.

lmp = uilamp(parent) creates the lamp in the specified parent container. The parent can be a Figure object or one of its child containers.

example

lmp = uilamp(___,Name,Value) specifies Lamp properties using one or more name-value arguments. For example, uilamp(Color="red") creates a red lamp. For a list of all properties, see Lamp. Use this option with any of the input argument combinations in the previous syntaxes.

example

Examples

collapse all

Create a lamp in a UI figure.

fig = uifigure;
lmp = uilamp(fig);

Figure contains an object of type uilamp.

Create a red lamp in a UI figure.

fig = uifigure;
lmp = uilamp(fig,Color="red");

Figure contains an object of type uilamp.

Query the Color property to return the lamp color as an RGB triplet.

c = lmp.Color
c = 1×3

     1     0     0

Update the color by setting the Color property.

lmp.Color = "#EDB120";

Figure contains an object of type uilamp.

Create an app that changes the color of a lamp while a long computation runs.

In a file named lampApp.m, write a function that implements the app:

  • Create a UI figure and a grid layout manager to lay out the app.

  • Create a button and a lamp in the grid layout manager.

  • Write a callback function named calc that performs a long calculation and changes the lamp color to red while the calculation runs. Call the drawnow function after updating the lamp color to see the updates on the screen.

  • To run the calc button when the app user clicks, the button, assign the function to the ButtonPushedFcn callback property of the button. For more information about callback functions, see Create Callbacks for Apps Created Programmatically.

function lampApp
fig = uifigure(Position=[100 100 200 300]);
g = uigridlayout(fig,[2,1]);
g.RowHeight = {'fit','1x'};
btn = uibutton(g,Text="Calculate");
lmp = uilamp(g,Color="green");
btn.ButtonPushedFcn=@(src,event) calc(lmp);
end

function calc(lamp)
lamp.Color = "red";
drawnow
svd(rand(4000));
lamp.Color = "green";
drawnow
end

Run the app. Click the Calculate button to perform the calculation with the lamp indicator.

lampApp

Figure contains an object of type uigridlayout.

Input Arguments

collapse all

Parent container, specified as a Figure object or one of its child containers: Tab, Panel, ButtonGroup, or GridLayout. If you do not specify a parent container, MATLAB calls the uifigure function to create a new Figure object that serves as the parent container.

Name-Value Arguments

collapse all

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: uilamp(Color="red") specifies that the lamp color is red.

Note

The properties listed here are a subset of the available properties. For the full list, see Lamp.

Color of the lamp, specified as an RGB triplet, a hexadecimal color code, or one of the color options listed in the table.

RGB triplets and hexadecimal color codes are useful for specifying custom colors.

  • An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1]; for example, [0.4 0.6 0.7].

  • A hexadecimal color code is a character vector or a string scalar that starts with a hash symbol (#) followed by three or six hexadecimal digits, which can range from 0 to F. The values are not case sensitive. Thus, the color codes "#FF8800", "#ff8800", "#F80", and "#f80" are equivalent.

Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.

Color NameShort NameRGB TripletHexadecimal Color CodeAppearance
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

This table lists the default color palettes for plots in the light and dark themes.

PalettePalette Colors

"gem" — Light theme default

Before R2025a: Most plots use these colors by default.

Sample of the "gem" color palette

"glow" — Dark theme default

Sample of the "glow" color palette

You can get the RGB triplets and hexadecimal color codes for these palettes using the orderedcolors and rgb2hex functions. For example, get the RGB triplets for the "gem" palette and convert them to hexadecimal color codes.

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

Before R2023b: Get the RGB triplets using RGB = get(groot,"FactoryAxesColorOrder").

Before R2024a: Get the hexadecimal color codes using H = compose("#%02X%02X%02X",round(RGB*255)).

Data Types: double | char

Location and size of the lamp, specified as the vector [left bottom width height]. This table describes each element in the vector.

ElementDescription
leftDistance from the inner left edge of the parent container to the outer left edge of the lamp
bottomDistance from the inner bottom edge of the parent container to the outer bottom edge of the lamp
widthDistance between the right and left outer edges of the lamp
heightDistance between the top and bottom outer edges of the lamp

All measurements are in pixel units.

The lamp has a fixed width-to-height aspect ratio of 1 to 1. Therefore, you cannot change the lamp width and height independently of one another. To change the lamp size, specify a bounding box for the lamp by using l.Position(3:4) = [width height]. MATLAB automatically sizes the lamp to fit within the box while maintaining its aspect ratio.

The Position values are relative to the drawable area of the parent container. The drawable area is the area inside the borders of the container and does not include the area occupied by decorations such as a menu bar or title.

Example: [100 200 20 20]

Version History

Introduced in R2016a

See Also

Functions

Objects

Tools