from
Interleave
by Assaf Mushinsky
Interleave any number of vectors to one column vector
|
| interleave(varargin)
|
function vec = interleave(varargin)
lengths = cellfun(@length,varargin);
for i = 1 : length(varargin)
varargin{i} = reshape(varargin{i},1,numel(varargin{i}));
end
if all(lengths(1) == lengths)
vec = vertcat(varargin{:});
vec = vec(:);
else
newLength = min(lengths);
[varargin1,varargin2] = cellfun(@(x) deal(x(1:newLength),x(newLength+1:end)), varargin,'UniformOutput',false);
notEmpty = ~cellfun(@isempty,varargin2);
vec = interleave(varargin1{:});
varargin2 = varargin2(notEmpty);
vec = vertcat(vec,interleave(varargin2{:}));
end
|
|
Contact us