If you have the signal toolbox, you can use the buffer() command to an array of the x values that you require, then do the matrix multiplication in one shot.
x = 1:50;
m = 6;
L = 15;
n = 48;
z = buffer(x(L+1-m:n),m+1,m,'nodelay');
y = 1:7;
vals = y*z;
I'm not sure if this will be faster. It could require a lot of memory. But it is vectorized, so test it out and see.