assign

Updated:


assign is used to explicitly assigning the value obtained when applying the command [double] on an sdpvar object. These values can for example be used as initial guesses when solvers support these.

Note, assign does not [replace replace] or constrain the variable with a particular value. It is only used for initial values in nonlinear solvers. Hence, only used when the option usex0 in sdpsettings is activated.

Syntax

assign(X,Y)

Examples

Variables are initialized as NaN

x = sdpvar(1,1);
value(x)

ans =
    NaN

By using assign, the current value can be altered

assign(x,1)
value(x)

ans =
    1

By default, inconsistent assignments generate an error message.

t = sdpvar(1,1);x = [t t];
assign(x,[1 2])
??? Error using ==> sdpvar/assign
Inconsistent assignment

With a third argument, a least squares assignment is obtained

t = sdpvar(1,1);x = [t t];
assign(x,[1 2],1)
value(x)

ans =

    1.5000    1.5000

The value can be used as an initial guess for solvers supporting this

x = sdpvar(1,1);
assign(x,pi);
optimize([sin(x)^2 <= .1],x,sdpsettings('usex0',1));

Leave a Comment