Is there a way to split a 300x400 matrix into 8 300x50 matrices?
The command mat2cell does exactly this. Suppose A is your original matrix. Then
mat2cell
A
splitA = mat2cell(A, 300, 50*ones(1, 8));
will do what you want.