Vous pouvez le faire en utilisant les fonctions HANKEL et FLIPUD:
a = flipud(hankel(1:4,4:7));
ou en utilisant les fonctions TOEPLITZ et FLIPLR:
a = toeplitz(fliplr(1:4),4:7);
a = toeplitz(4:-1:1,4:7); %# Without fliplr
Vous pouvez également généraliser ces solutions à un vecteur arbitraire où vous avez choisi le point central à partir duquel rompre le vecteur. Par exemple:
>> 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
L'exemple ci-dessus place les trois premiers éléments du vecteur en courant la première colonne et les quatre derniers éléments du vecteur courant le long de la première rangée.