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

1 vue (au cours des 30 derniers jours)
Kong
Kong le 27 Mar 2020
Modifié(e) : KSSV le 27 Mar 2020
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?

Réponse acceptée

KSSV
KSSV le 27 Mar 2020
Modifié(e) : KSSV le 27 Mar 2020
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) ;

Plus de réponses (1)

Walter Roberson
Walter Roberson le 27 Mar 2020
If you have the Communications Systems Toolbox, then
buffer(TheVector, ceil(sqrt(numel(TheVector))))

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by