Pulling matrix column data out of a cell

1 visualización (últimos 30 días)
Zach Wallace
Zach Wallace el 12 de Nov. de 2016
Comentada: James Tursa el 12 de Nov. de 2016
I have a cell array with 29 matrices that are each 500x6 doubles. I want to take the first column of each matrix and load them into a single matrix that is 500x29. Then, I want to do this with each column, ending with 6 matrices of 500x29. I feel like theres a way to do this with a for loop I just dont know how. Help?

Respuesta aceptada

Ahmet Cecen
Ahmet Cecen el 12 de Nov. de 2016
Say your Cell array is C:
D = cell2mat(C);
E = reshape(D(:),[500 29*6]);
Now every 500 by 29 chunk in E is a matrix you want.
  2 comentarios
Zach Wallace
Zach Wallace el 12 de Nov. de 2016
I didnt know about cell2mat, thanks! But I'm not sure why you need reshape?
James Tursa
James Tursa el 12 de Nov. de 2016
Slight edit:
D = cell2mat(C(:)); % Use C(:) to ensure columns line up
E = reshape(D,[500 29 6]); % So 3rd index picks off the 500x29 matrix
I.e., E(:,:,1) is your 1st matrix, E(:,:,2) is your 2nd matrix, etc. Could of course use mat2cell on E if you wanted the result in a cell array.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays 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