I believe you can still use the reshape function for what you are describing. The documentation shows you can input an empty matrix ("[]") to the function so that it will automatically reshape the matrix given a value for the other dimensions of the matrix. Reshaping the 2D matrix "A" into 9 columns would be accomplished by the following: B = reshape(A,[],9);
nrows = size(B,1);
Where nrows will give you the number of rows the matrix was reshaped into.
Of course this only works when the number of elements is divisible by 9, however. If you'd like to reshape when the number of elements is not divisible by 9 you'll need to pad the matrix with extra numbers. I would do this in the following way (using trailing zeros to pad the matrix):
B = reshape(A,1,[]);
nzeros = rem(size(B,1),ncols);
C = [B zeros(1,nzeros)];
D = reshape(C,[],ncols);
Best Answer