MATLAB: How to divide vector to matrix(same row and column)

matrixmatrix arraymatrix manipulationvectorvectorizationvectors

Hello.
I got some vector like (82580526 X 1)
I want to divide this vector to matrix. The matrix have same row and column. (N x N)
If it can't be divide equally, some row or column of the matrix can be splited.
Could you explain how to have same row and column?

Best Answer

To remove extra elements and convert to square matrix
A = rand(82580526,1) ;
l = length(A) ;
% GEt the nearest perfect square
N = floor(sqrt(l)) ;
% Reshape into required matrix

iwant = reshape(A(1:N*N),N,N) ;
To append zeros and convert to square matrix
A = rand(82580526,1) ;
l = length(A) ;
% GEt the next perfect square
N = ceil(sqrt(l)) ;
% Append zeros
A = [A ; zeros(N^2-l,1)] ;
% Reshape into required matrix
iwant = reshape(A,N,N) ;