function y = horzcat(varargin) %HORZCAT (overloaded) prenargin = nargin; % Fast exit if prenargin<2 y=varargin{1}; return end if nargin>20 y = horzcat(horzcat(varargin{1:fix(nargin/2)}),horzcat(varargin{fix((nargin/2))+1:end})); return end % Get dimensions n = zeros(prenargin,1); m = zeros(prenargin,1); for i = 1:prenargin if isa(varargin{i},'blkvar') varargin{i} = sdpvar(varargin{i}); end [n(i),m(i)]=size(varargin{i}); end % Keep only non-empty keep_these = find((n.*m)~=0); if length(keep_these)