Filter löschen
Filter löschen

concat of 3d mat files in a folder

2 Ansichten (letzte 30 Tage)
khaled alsaih
khaled alsaih am 5 Jun. 2018
Kommentiert: khaled alsaih am 6 Jun. 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 Kommentare
Jan
Jan am 5 Jun. 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 am 6 Jun. 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jan
Jan am 5 Jun. 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 Kommentare
khaled alsaih
khaled alsaih am 6 Jun. 2018
by the way the data is unit8
khaled alsaih
khaled alsaih am 6 Jun. 2018
thanks a lot for your help bro

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

KSSV
KSSV am 5 Jun. 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 Kommentare
khaled alsaih
khaled alsaih am 5 Jun. 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 am 5 Jun. 2018
KSSV used rand to produce some example data.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Convert Image Type finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by