Puede hacer esto utilizando las funciones HANKEL y FLIPUD:
a = flipud(hankel(1:4,4:7));
o el uso de las funciones TOEPLITZ y FLIPLR:
a = toeplitz(fliplr(1:4),4:7);
a = toeplitz(4:-1:1,4:7); %# Without fliplr
También puede generalizar estas soluciones a una vector arbitrario donde ha elegido el punto central en el que romper el vector. Por ejemplo:
>> vec = [6 3 45 1 1 2]; %# A sample vector
>> centerIndex = 3;
>> a = flipud(hankel(vec(1:centerIndex),vec(centerIndex:end)))
a =
45 1 1 2
3 45 1 1
6 3 45 1
El ejemplo anterior coloca los tres primeros elementos del vector corriendo hasta la primera columna y los últimos cuatro elementos del vector corriendo a lo largo de la primera fila.