function [A,b,lmi_variables] = generateAB(varargin) %GENERATEAB Internal function to generates linear equation system % Author Johan Löfberg % $Id: generateAB.m,v 1.4 2006/07/26 20:17:58 joloef Exp $ if mod(nargin,2)~=0 error('Internal error in generateAB. Please report.'); end lmi_variables = []; n_eq = 0; for r = 1:nargin/2 [n,m] = size(varargin{1+2*(r-1)}); n_eq = n_eq + n*m; lmi_variables = [lmi_variables varargin{1+2*(r-1)}.lmi_variables(:)']; end lmi_variables = uniquestripped(lmi_variables); A = spalloc(n_eq,length(lmi_variables),n_eq); b = spalloc(n_eq,1,n_eq); btop = 1; atop = 1; for r = 1:nargin/2 X = varargin{2*r-1}; [n,m] = size(X); used_variables = find(ismembc(lmi_variables,X.lmi_variables)); A(atop:atop+n*m-1,used_variables) = X.basis(:,2:end); b(btop:btop+n*m-1) =varargin{2*r}(:)-X.basis(:,1); atop = atop+n*m; btop = btop+n*m; end