# decinfo

Describe how entries of matrix variable *X* relate to decision variables

## Syntax

`decX = decinfo(lmisys,X)`

decinfo(lmisys)

## Description

`decinfo`

expresses the entries of a matrix variable
*X* in terms of the decision variables
*x*_{1}, . . .,
*x _{N}*. Recall that the decision variables
are the free scalar variables of the problem, or equivalently, the free entries of all
matrix variables described in

`lmisys`

. Each entry of
*X*is either a hard zero, some decision variable

*x*, or its opposite –

_{n}*x*.

_{n}If `X`

is the identifier of *X* supplied by
`lmivar`

, the command
`decX = decinfo(lmisys,X)`

returns an integer matrix
`decX`

of the same dimensions as *X* whose
(*i, j*) entry is

0 if

*X*(*i, j*) is a hard zero*n*if*X*(*i, j*) =*x*(the_{n}*n*-th decision variable)–

*n*if*X*(*i, j*) = –*x*_{n}

`decX`

clarifies the structure of *X* as well as its
entry-wise dependence on *x*_{1}, . . .,
*x _{N}*. This is useful to specify matrix
variables with atypical structures (see

`lmivar`

).`decinfo`

can also be used in interactive mode by invoking it with
a single argument, as `decinfo(lmisys)`

. It then prompts the user for
a matrix variable and displays in return the decision variable content of this
variable.

## Examples

### Example 1

Consider an LMI with two matrix variables *X* and *Y* with structure:

*X*=*x I*_{3}with*x*scalar*Y*rectangular of size 2-by-1

If these variables are defined by

setlmis([]) X = lmivar(1,[3 0]) Y = lmivar(2,[2 1]) : : lmis = getlmis

the decision variables in *X* and *Y* are given by

dX = decinfo(lmis,X) dX = 1 0 0 0 1 0 0 0 1 dY = decinfo(lmis,Y) dY = 2 3

This indicates a total of three decision variables *x*_{1}, *x*_{2}, *x*_{3} that are related to the entries of *X* and *Y* by

$$X=\left(\begin{array}{ccc}{x}_{1}& 0& 0\\ 0& {x}_{1}& 0\\ 0& 0& {x}_{1}\end{array}\right),Y=\left(\begin{array}{c}{x}_{2}\\ x3\end{array}\right)$$

Note that the number of decision variables corresponds to the number of free entries in *X* and *Y* when taking structure into account.

### Example 2

Suppose that the matrix variable *X* is symmetric block diagonal with one 2-by-2 full block and one 2-by-2 scalar block, and is declared by

setlmis([]) X = lmivar(1,[2 1;2 0]) : lmis = getlmis

The decision variable distribution in *X* can be visualized interactively as follows:

decinfo(lmis) There are 4 decision variables labeled x1 to x4 in this problem. Matrix variable Xk of interest (enter k between 1 and 1, or 0 to quit): ?> 1 The decision variables involved in X1 are among {-x1,...,x4}. Their entry-wise distribution in X1 is as follows (0,j>0,-j<0 stand for 0,xj,-xj, respectively): X1 : 1 2 0 0 2 3 0 0 0 0 4 0 0 0 0 4 ********* Matrix variable Xk of interest (enter k between 1 and 1, or 0 to quit): ?> 0

**Introduced before R2006a**