Creating a 3D array out of multiple 2D arrays
227 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Med_Imager
am 13 Feb. 2012
Kommentiert: Steven Lord
am 22 Mär. 2021
I have 10 masks that are 256 x 256 each. These masks are for 10 respective slices, so I want to combine them and make a 3D array ( 256x256x10). How do I do this? Ideas? Thanks!
0 Kommentare
Akzeptierte Antwort
Sean de Wolski
am 13 Feb. 2012
cat(3,mask1,mask2,...)
doc cat %for more info
2 Kommentare
Safwana Razak
am 22 Mär. 2021
hi, what if i got > 100 array in 3rd array, how to automate it?
cat(3,mask1,.....mask100)
Steven Lord
am 22 Mär. 2021
Revise your code so it doesn't create 100 individual variables. Preallocate the array to be the desired size from the start and fill it in.
A = magic(4);
B = repmat(A, [1 1 5]); % or
C = zeros(4, 4, 5);
for k = 1:5
B(:, :, k) = A^k;
C(:, :, k) = A^k;
end
Weitere Antworten (2)
Kris Hoffman
am 20 Jul. 2020
I just had this exact problem (even with the same dimensions)
If the masks are all in one cell array,
A = cat(3,YourMaskArrayHere{:})
Produces a 256x256x10 uint16 array.
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!