how to store data in cell array

1 view (last 30 days)
I have 40 folders and each folder having 10 images, I have written one program for reading first five
images from 40 folders and stored in one cell array but I got the dimension i.e. 40 X 1 as given below
40 X 40
40 X 40
.
.
40 X 40
but I required the dimension of cell array i.e. 200 X 1 as given below
1600 X 1
1600 X 1
.
.
1600 X 1
function out=load_database()
% We load the database the first time we run the program.
persistent loaded;
persistent w;
if(isempty(loaded))
v=zeros(10304,400);
for i=1:40
cd(strcat('s',num2str(i)));
for j=1:5
a=imread(strcat(num2str(j),'.bmp'));
%v(:,(i-1)*10+j)=reshape(a,size(a,1)*size(a,2),1);
v = imresize(a,[40,40]);
end
w=uint8(v);
faceData{i}=w;
cd ..
end
end
loaded=1; % Set 'loaded' to aviod loading the database again.
out=faceData';

Accepted Answer

Bruno Luong
Bruno Luong on 20 Oct 2018
faceData = cell(40,5); % or cell(5,40)
for i=1:40
  for j=1:5
     % ... read v
     w = uint8(v);
     faceData{i,j} = w; % or faceData{j,i} = w;
  end
end
faceData = reshape(faceData,[],1);
  7 Comments
Bruno Luong
Bruno Luong on 20 Oct 2018
Alternatively you can also do
v = v(:)
after resizing into 40x40 to make it as a long vertical vector

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!