EDIT:
I edited my earlier solution so that you do not have to specify a parameter maxLengthfor the function. The function calculates it before performing the fill.
function out=joinUnevenVectors(varargin)
%
%
%
%
maxLength=max(cellfun(@numel,varargin));
out=cell2mat(cellfun(@(x)cat(1,x,zeros(maxLength-length(x),1)),varargin,'UniformOutput',false));
, joinUnevenVectors(vec1,vec2,vec3,vec4) .., .
:
short = [1 2 3]';
long = [4 5 6 7]';
joinUnevenVectors(short,long)
ans =
1 4
2 5
3 6
0 7