# MATLAB: Generator matrix for repetition coding

generatorMATLABmatrixrepetitionvector

Hello. I would like to be able to make generator repetition matrices for given vectors. If I have the vector
u = [1 0 0 1]
with parameter q=3(how many times every bit will be repeated), I would like to take from matlab the G matrix
G = [1 1 1 0 0 0 0 0 0 0 0 0;     0 0 0 1 1 1 0 0 0 0 0 0;     0 0 0 0 0 0 1 1 1 0 0 0;     0 0 0 0 0 0 0 0 0 1 1 1];
So the multiplication
c = u*G
gives
c = [1 1 1 0 0 0 0 0 0 1 1 1];
So, I would like to give u,q inputs to matlab and get G for very big matrices. Basically, the creation of G matrix requires only the length of u and the q. If the length of u=3 and q=2, we have
 G = [1 1 0 0 0 0;      0 0 1 1 0 0;      0 0 0 0 1 1];

#### Best Answer

• Edited
u=3;q=2;C=zeros(u,q*u);jj=1:q;for k=1:u  C(k,jj)=1;  jj=jj+q;endC
%Or
u=4q=3C=zeros(u,q*u)jj=1:qx=reshape(repmat(1:u,q,1),[],1)'y=1:q*uidx=sub2ind(size(C),x,y)C(idx)=1
%Or
u=4q=3d=mat2cell(ones(1,q*u),1,q*ones(1,u))out=blkdiag(d{:})