samer@0: function u=construct(s,sizes_in) samer@0: u=construct(s.base,sizes_in); samer@0: samer@0: u.sizes_out = {[u.sizes_out{1}(1),s.width]}; samer@0: subproc = u.process; samer@0: width = s.width; samer@0: samer@0: if nargin(s.base)==0 && nargout(s.base)==1 samer@0: u.process = @proc01; samer@0: elseif nargin(s.base)==1 && nargout(s.base)==0 samer@0: u.process = @proc10; samer@0: else samer@0: u.process = @proc11; samer@0: end samer@0: samer@0: function proc10(X) samer@0: for i=1:width, subproc(X(:,i)); end samer@0: end samer@0: samer@0: function Y=proc11(X) samer@0: y=subproc(X(:,1)); samer@0: Y=repmat(y,1,width); samer@0: for i=2:width samer@0: Y(:,i)=subproc(X(:,i)); samer@0: end samer@0: end samer@0: samer@0: function Y=proc01 samer@0: y=subproc(); samer@0: Y=repmat(y,1,width); samer@0: for i=2:width samer@0: Y(:,i)=subproc(); samer@0: end samer@0: end samer@0: end samer@0: