如何分别绘制一个X * Y * Z(3D)矩阵的matlab?

问题描述:

我想创建4个子图,每个包含16个数字。每个图形都是矩阵GW的一个维度。即GW(:,:,1)是第一个图像。 这是我在第一个子图中的前16个图像的for循环。我应该如何修改for循环来获得3个更多的子图? 第一个子图应该包含前16个图像,第二个子图应该包含第二个16个图像,依此类推。随着下面的循环,我得到了所有四个子图的前16个图像。如何分别绘制一个X * Y * Z(3D)矩阵的matlab?

for i=1:4 
     figure(i); 
     hold on; 

     for jj = 1:16 
       subplot (4,4,j) 
       imshow (GW(:,:,j)); 
     end 
end 

你只需要修改你如何访问GW的第三维。试试这个:

num_figures = 4; % because I dont like magic numbers in the code 
subplots_per_figure = 16; % same here 
for i=1:num_figures 
     figure(i); 
     hold on; 

     for j = 1:subplots_per_figure 
       subplot (4,4,j) 
       imshow (GW(:,:,j+(i-1)*subplots_per_figure)); 
     end 
end