Creating a 3D array out of multiple 2D arrays
169 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Sean de Wolski
2012-2-13
cat(3,mask1,mask2,...)
doc cat %for more info
2 个评论
Safwana Razak
2021-3-22
hi, what if i got > 100 array in 3rd array, how to automate it?
cat(3,mask1,.....mask100)
Steven Lord
2021-3-22
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
更多回答(2 个)
Kris Hoffman
2020-7-20
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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!