samer@4: function X=packvec(varargin) samer@4: % packvec - Pack coordinate values in separate arrays into one big array samer@4: % samer@4: % packvec :: {[K]->[[E]]} -> [[K,E]]. samer@4: % samer@4: % There is also a variable argument list form: samer@4: % samer@4: % packvec :: [[E]], [[E]] -> [[2,E]]. samer@4: % packvec :: [[E]], [[E]], [[E]] -> [[3,E]]. samer@4: % etc.. samer@4: samer@4: samer@4: if nargin==1 && iscell(varargin{1}) samer@4: Y=varargin{1}; samer@4: else samer@4: Y=varargin; samer@4: end samer@4: [Y{:}]=promote(Y{:}); samer@4: Y=cellmap(@(y)reshape(y,[1 size(y)]),Y); samer@4: X=cat(1,Y{:}); samer@4: samer@4: