Main Content


Specify or display systems of LMIs as MATLAB expressions




lmiedit is a graphical user interface for the symbolic specification of LMI problems. Typing lmiedit calls up a window with two editable text areas and various buttons. To specify an LMI system,

  1. Give it a name (top of the window).

  2. Declare each matrix variable (name and structure) in the upper half of the window. The structure is characterized by its type (S for symmetric block diagonal, R for unstructured, and G for other structures) and by an additional structure matrix similar to the second input argument of lmivar. Please use one line per matrix variable in the text editing areas.

  3. Specify the LMIs as MATLAB® expressions in the lower half of the window. An LMI can stretch over several lines. However, do not specify more than one LMI per line.

Once the LMI system is fully specified, you can perform the following operations by pressing the corresponding button:

  • Visualize the sequence of lmivar/lmiterm commands needed to describe this LMI system (view commands buttons)

  • Conversely, display the symbolic expression of the LMI system produced by a particular sequence of lmivar/lmiterm commands (click the describe... buttons)

  • Save the symbolic description of the LMI system (save button). This description can be reloaded later on by pressing the load button

  • Read a sequence of lmivar/lmiterm commands from a file (read button). The matrix expression of the LMI system specified by these commands is then displayed by clicking on describe the LMIs...

  • Write in a file the sequence of lmivar/lmiterm commands needed to specify a particular LMI system (write button)

  • Generate the internal representation of the LMI system by pressing create. The result is written in a MATLAB variable with the same name as the LMI system


Editable text areas have built-in scrolling capabilities. To activate the scroll mode, click in the text area, maintain the mouse button down, and move the mouse up or down. The scroll mode is only active when all visible lines have been used.

Version History

Introduced before R2006a