MATLAB Answers

change the dimension of a cell in a cell array

22 views (last 30 days)
ZEMIN HUANG
ZEMIN HUANG on 26 Jan 2021
Commented: Image Analyst on 31 Jan 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!

  0 Comments

Sign in to comment.

Accepted Answer

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

More Answers (1)

Image Analyst
Image Analyst on 26 Jan 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 Comments

ZEMIN HUANG
ZEMIN HUANG on 26 Jan 2021
ok thanks Image Analyst! will explore on that!
ZEMIN HUANG
ZEMIN HUANG on 31 Jan 2021
hi image analyst, how do i convert the cell array to 480000x384 matrix that you mentioned
Image Analyst
Image Analyst on 31 Jan 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

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!