Claro, este GNU Octave script lo hace
T = toeplitz(rand(4,1),[0,0,0,0]);
t = T(:,1); % first column
P = diag(ones(6,1),1) + diag(1,-6); P = inv(P);
Z = 0*P;
M= [P^0,Z,Z,Z;Z,P^1,Z,Z;Z,Z,P^2,Z;Z,Z,Z,P^3];
v=M*kron(ones(4,1),[zeros(3,1);t]);
T-reshape(v,[7,4])(4:7,:)
Las matrices binarias utilizadas son generadoras de la representación matricial del grupo cíclico C7 : ( P en el código)
Su exponente se coloca a lo largo de la diagonal y rellena el resto con ceros. Luego rellena el (a,b,c,d)T vector con 3 ceros (o N−1 ceros, donde N es el tamaño del vector)
Probablemente se puede aplicar un recorte para hacerla más pequeña y ordenada.
La "remodelación" y la ordenación pueden llevarse a cabo mediante matrices de selección binarias.