Dynamic-Calibration/utils/YALMIP-master/extras/NormalizeCallback.m

28 lines
598 B
Matlab
Executable File

function F = NormalizeCallback(varargin)
doAssignInitials = varargin{end};
z_normalizing = varargin{end-1};
for i = 3:nargin-2
if isa(varargin{i},'sdpvar')
X = varargin{i};
break
end
end
n = length(X);
if isequal(getbase(X),[spalloc(n,1,0) speye(n)])
F = lmi([]);
else
if doAssignInitials
dX = value(X);
if ~all(isnan(dX))
assign(z_normalizing,dX);
end
end
try
F = X == z_normalizing;
catch
disp('Report bug in NORMALIZECALLBACK');
error('Report bug in NORMALIZECALLBACK')
end
end