Вы можете сделать это, используя функции HANKEL и FLIPUD :
a = flipud(hankel(1:4,4:7));
Или используя функции TOEPLITZ и FLIPLR :
a = toeplitz(fliplr(1:4),4:7);
a = toeplitz(4:-1:1,4:7); %# Without fliplr
Вы также можете обобщить эти решения на произвольный вектор, в котором вы выбрали центральную точку, в которой нужно разбить вектор. Например:
>> 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
Приведенный выше пример размещает первые три элемента вектора, идущие вверх по первому столбцу, и последние четыре элемента вектора, идущие вдоль первой строки.