Q:

How can I easily create this matrix? 

How can I easily create the following matrix in MATLAB?  
With A (nxn), B (nxp) and N a positive integer. 
Gamma = [B         0         0         ...   0 ; 
         A*B       B         0         ...   0 ; 
         A^2*B     A*B       B         ...   0 ; 
         ...       ...       ...       ... ... ; 
         A^(N-1)*B A^(N-2)*B A^(N-3)*B ...   B];

A:

How about
[g{1:N,1:N}] = deal( zeros(n,p) );
g{1,1} = B;
for ii = 2:N
    g( ii, 2:end ) = g( ii-1, 1:end-1 );
    g{ ii, 1 } = A * g{ ii-1, 1 };
end
Gamma = cell2mat( g );

A:

This works, though it is less efficient than it could be. 
n = size(A,1);
p = size(B,2);

N = 3;
Gamma = zeros(N*n, N*p);

for ii = 1:N
  for jj = 1:N
    if ii >= jj
      Gamma((ii-1)*n+1:ii*n,(jj-1)*p+1:jj*p) = A^(ii-jj) * B;
    end
  end
end

Edit: Here's a more efficient version, that does the minimum amount of matrix multiplication. 
n = size(A,1);
p = size(A,2);

N = 3;
Gamma = zeros(N*n, N*p);

# Pre-compute all the matrix multiplications we'll need. 
memo = cell(1, N);
memo{1} = B;
for ii = 1:N-1
  memo{ii+1} = A * memo{ii};
end

for ii = 1:N
  for jj = 1:N
    if ii >= jj
      Gamma((ii-1)*n+1:ii*n,(jj-1)*p+1:jj*p) = memo{ii-jj+1};
    end
  end
end

