Borrar filtros
Borrar filtros

concat of 3d mat files in a folder

2 visualizaciones (últimos 30 días)
khaled alsaih
khaled alsaih el 5 de Jun. de 2018
Comentada: khaled alsaih el 6 de Jun. de 2018
i have 20 3d mat files in a folder and i have different sizes for each ex: 512*1024*128 668*512*64 512*512*49 etc all i need is to load these data then resize the first two dimensions to 512*512 and to make one mat file for all can anyone help me please
  5 comentarios
Jan
Jan el 5 de Jun. de 2018
If you want to use a loop, how are the wanted files recognized? We cannot guess, which 20 files you want. But a meaningful example code must contain a method to determine the files. So please reveal the details.
khaled alsaih
khaled alsaih el 6 de Jun. de 2018
i have 20 (3d) images 7 images have the size of 512*1024*128 and 7 images have the size of 668*512*64 and 6 images have the size of 512*512*241 i want to load the data in the directory then resize all images to 512*512 then cocatenate them in one mat file

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 5 de Jun. de 2018
With a loop:
Folder = 'C:\Your\Path'; % Adjust the path to your needs
List = dir(fullfile(Folder, '*.mat'));
C = cell(size(List));
for k = 1:numel(List)
Data = load(fullfile(Folder, List(k).name));
M = Data.??? % Unfortunately you do not reveal what in the MAT files is.
% Perhaps:
% M = Data.Value;
C{k} = imresize(M, [512, 512]); % See KSSV's answer
end
Result = cat(3, C{:});
save('Output.mat', 'Result');
  3 comentarios
khaled alsaih
khaled alsaih el 6 de Jun. de 2018
by the way the data is unit8
khaled alsaih
khaled alsaih el 6 de Jun. de 2018
thanks a lot for your help bro

Iniciar sesión para comentar.

Más respuestas (1)

KSSV
KSSV el 5 de Jun. de 2018
A = rand(512,1024,128) ;
B = rand(668,512,64) ;
C = rand(512,512,49) ;
Ai = imresize(A,[512,512]) ;
Bi = imresize(B,[512,512]) ;
Ci = imresize(C,[512,512]) ;
iwant = cat(3,Ai,Bi,Ci) ;
  2 comentarios
khaled alsaih
khaled alsaih el 5 de Jun. de 2018
No need to make rand I have the data already And I have many mat files so I want to make a for loop to read the mat files then resize them Then concat Thanks a lot for your answer
Jan
Jan el 5 de Jun. de 2018
KSSV used rand to produce some example data.

Iniciar sesión para comentar.

Categorías

Más información sobre Convert Image Type en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by