# 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 x1, . . ., xN. 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 xn, or its opposite –xn.

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) = xn (the n-th decision variable)

• n if X(i, j) = –xn

`decX` clarifies the structure of X as well as its entry-wise dependence on x1, . . ., xN. 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 I3 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 x1, x2, x3 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 ```

## Version History

Introduced before R2006a