How to turn a large array into multiple smaller arrays

11 visualizaciones (últimos 30 días)
Lori
Lori el 12 de Ag. de 2012
Comentada: k el 17 de Jul. de 2020
Hi,
I have an array that has 31 rows and 1518 columns. I'm trying to figure out a quick way to turn that array into 759 arrays that are 31 rows and 2 columns. I want to take the first two columns, then the next two columns, etc. I was wondering this there was a way to do this in a loop, but was unsure if you could create and name new arrays in a loop. Any help would be much appreciated!
Thanks,
Lori
  1 comentario
Oleg Komarov
Oleg Komarov el 13 de Ag. de 2012
Please, do not post duplicate questions. Also, do not create incremental variables by splitting your array. It's a design suicide and bad programming practice.

Iniciar sesión para comentar.

Respuestas (3)

Wayne King
Wayne King el 12 de Ag. de 2012
Editada: Wayne King el 12 de Ag. de 2012
I think you want to store the separate matrices in a cell array rather than having 759 separate matrices, right? I mean you can always just access each of the 31x2 matrices from the cell array
X = randn(31,1518);
k = 1;
for nn = 1:2:1518-1
Y{k} = X(:,nn:nn+1);
k = k+1;
end
Now you can access each of the 31x2 matrices as
Y{1}, Y{2}, etc.
  1 comentario
k
k el 17 de Jul. de 2020
Hi! Is there a way to add to this loop a way for the program to plot every Y{} matrix, potentially in the same layout via tiledlayout()?

Iniciar sesión para comentar.


Azzi Abdelmalek
Azzi Abdelmalek el 12 de Ag. de 2012
Editada: Azzi Abdelmalek el 13 de Ag. de 2012
A=rand(31,1518); %example
B=reshape(A,31,2,1518/2)
for k=1: 1518/2
out.(sprintf('A%d',k))=B(:,:,k)
end
the first array is
out.A1,
thee second is
out.A2 ,
the last
out.A759

Andrei Bobrov
Andrei Bobrov el 13 de Ag. de 2012
out1 = reshape(yourmatrix,size(yourmatrix,1),2,[]);
or
out2 = mat2cell(yourmatrix,size(yourmatrix,1),2*ones(size(yourmatrix,2)/2,1));

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by