Creating a 2-D matrix from a 1-D Array?
49 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Considering that I have an array of A = [150 11 12 134 130 152]. How to replicate these elements in this array to get a matrix of size 256*256.
0 comentarios
Respuesta aceptada
Matthew Eicholtz
el 5 de Jul. de 2013
Based on your comment to David's answer, how about this?
r = 256; % number of desired rows
c = 256; % number of desired columns
Avec = repmat(A(:),ceil(r*c/length(A)),1); % vector of repeated A values
Anew = reshape(Avec(1:r*c),c,r)'; % new 2-D matrix of size rxc
0 comentarios
Más respuestas (2)
David Sanchez
el 5 de Jul. de 2013
You do not make clear how you want to replicate your data, but this is a way:
A = [150 11 12 134 130 152];
L = numel(A); % number of elelments in A
M = zeros(256); % initialize the matrix
% assigin values to first row
for k = 0:floor(256/L)
M( 1 , (k*L+1):((k+1)*L) ) = A;
end
% make sure you only have your 256 columns
M = M(:,1:256);
% copy first row to the rest of rows
for k=2:256
M(k,:) = M(1,:);
end
1 comentario
Andrei Bobrov
el 5 de Jul. de 2013
Editada: Andrei Bobrov
el 5 de Jul. de 2013
out = A(randi(numel(A),256,256));
or
m = 256;
n = 256;
A1 = repmat(A,1,ceil((m+n-1)/numel(A)));
out = hankel(A1(1:m),A1(m:m+n));
0 comentarios
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!