在matlab中的3D体素显示

Fan*_*Fox 6 matlab voxel

我有一个网格,它是3D,它存储一个数字.

以下是我的网格示例,如果它是2*2*2:

(:, :, 1) -> [0, 0;
              0, 0]
(:, :, 2) -> [0, 0;
              0, 0]
Run Code Online (Sandbox Code Playgroud)

数字0通常是我想用颜色或纳米表示的数字,如果那里没有体素的话.我想做的是用matlab显示体素网格,如下图所示:

在此输入图像描述

除了vocels应该用单元格中的数字着色.

有没有人知道如何做到这一点,如果有一个图书馆或某种方式自己写?

Fan*_*Fox 5

所以我发现你可以这样做:

for x = 1:GridSize(1)
    for y = 1:GridSize(2)
        for z = 1:GridSize(3)

            if (~isnan(VoxelGrid(x, y, z)))

                cubeLength = VoxelGrid.resolution;

                plotcube(   [cubeLength cubeLength cubeLength], ...
                            [x, y, z], ...
                            0.9, ...
                            [colour, colour, colour])
             end
         end
     end
 end
Run Code Online (Sandbox Code Playgroud)

这将打印出这样的灰度体素表示:

在此输入图像描述

现在我需要一些帮助才能使颜色正常工作.