# 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