change the dimension of a cell in a cell array

3 visualizzazioni (ultimi 30 giorni)
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!

Risposta accettata

David Hill
David Hill il 26 Gen 2021
for k=1:length(XTrain)
XTrain{k}=reshape(XTrain{k},6,[]);
end

Più risposte (1)

Image Analyst
Image Analyst il 26 Gen 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 Commenti
ZEMIN HUANG
ZEMIN HUANG il 31 Gen 2021
hi image analyst, how do i convert the cell array to 480000x384 matrix that you mentioned
Image Analyst
Image Analyst il 31 Gen 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

Accedi per commentare.

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by