function Y=sparse(varargin) %SPARSE (overloaded) % Author Johan Löfberg % $Id: sparse.m,v 1.6 2006/07/26 20:17:58 joloef Exp $ if nargin < 3 error('At-least 3 arguments needed'); end data = varargin{3}; ns = varargin{1}; ms = varargin{2}; if length(ns)~=length(ms) | length(ms)~=length(data) error('Length of first 3 arguments must be equal'); end if min(size(data))>1 error('Third argument should be a vector'); end if nargin < 4 n = max(ns); else n = varargin{4}; end if nargin < 5 m = max(ms); else m = varargin{5}; end if any(ms>m) error('Dimension mismatch') end if any(ns>n) error('Dimension mismatch') end Y = data; Y.dim(1) = n; Y.dim(2) = m; [i1,j1,s1] = find(data.basis); ind = ns+(ms-1)*n; Y.basis = sparse(ind(i1),j1,s1,n*m,1+length(Y.lmi_variables)); % Reset info about conic terms Y.conicinfo = [0 0];