change the dimension of a cell in a cell array

3 visualizaciones (últimos 30 días)
ZEMIN HUANG
ZEMIN HUANG el 26 de En. de 2021
Comentada: Image Analyst el 31 de En. de 2021
hi, i have a cell array of size 480000x1, in each cell, the size is 384x1 as shown in the picture. I would like to change the 384x1 dimension of every cell to 6x64. could anyone help me please? thanks in advance.
i tried writing the below code but got an error. help please!

Respuesta aceptada

David Hill
David Hill el 26 de En. de 2021
for k=1:length(XTrain)
XTrain{k}=reshape(XTrain{k},6,[]);
end

Más respuestas (1)

Image Analyst
Image Analyst el 26 de En. de 2021
You almost definitely should not use a cell array for this. They are slow and have lots of overhead. It looks like you can use a regular double 480000 x 384 matrix, or even a table. Just start out with a 3-D array of 480000 x 6 x 64.
  3 comentarios
ZEMIN HUANG
ZEMIN HUANG el 31 de En. de 2021
hi image analyst, how do i convert the cell array to 480000x384 matrix that you mentioned
Image Analyst
Image Analyst el 31 de En. de 2021
You would not convert it because you would/should never create a cell array in the first place. You would just do
for row = 1 : 48000
for k = 1 : 64
column1 = (k-1) * 6 + 1;
column2 = column1 + 5;
m(row, column1 : column2) = someVectorOfLength6;
end
end

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by