cat with an empty matrix behaves differently in Octave 3.0.3 than in Matlab 7.3.
In Octave:
octave:18> cat(2,[],1)
error: octave_base_value::reshape (): wrong type argument `scalar'
In Matlab:
>> cat(2,[],1)
ans =
1
Obviously, in actual use the empty matrix is usually a variable rather than a literal empty matrix.