Creating a 3D array out of multiple 2D arrays
286 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Med_Imager
le 13 Fév 2012
Commenté : Steven Lord
le 22 Mar 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 commentaires
Réponse acceptée
Sean de Wolski
le 13 Fév 2012
cat(3,mask1,mask2,...)
doc cat %for more info
2 commentaires
Safwana Razak
le 22 Mar 2021
hi, what if i got > 100 array in 3rd array, how to automate it?
cat(3,mask1,.....mask100)
Steven Lord
le 22 Mar 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
Plus de réponses (2)
Kris Hoffman
le 20 Juil 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 commentaires
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!