matlab生成50*50*50的一个个小格子

matlab三维绘图如何生成505050的一个个小格子,每个小格子代表一个坐标点,内部也有填充颜色

你好,你可以尝试patch,如有帮助还望题主给个宝贵的采纳支持一下答主答题哟,谢谢啦

[i,j,k] = meshgrid(0.5:1:9.5); %我这里举个栗子,50个格子请把9.5改成49.5
V=[-1,-1,-1; 1,-1,-1; 1,1,-1; -1,1,-1; -1,-1,1; 1,-1,1; 1,1,1; -1,1,1]/2;%八个顶点
F=[1,4,3,2; 1,2,6,5; 2,3,7,6; 3,4,8,7; 4,1,5,8; 5,6,7,8]; % 六个面
h0 = @(V)patch('faces',F,'vertices',V,'facecolor',rand(1,3),'edgecolor','k'); hold off
arrayfun(@(m) h0(V+[i(m),j(m),k(m)]), 1:numel(i));
axis equal
view(27,32)

效果图

img

想要一种三维矩阵就能直接控制的,我的方法如下,其中的问题望大家能解决一下
a=rand(50,50,50);
h=slice(a,1:50,1:50,1:50);
shading flat;
axis equal;
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
效果图

img


%a=rand(50,50,50);
a=NaN(50,50,50);
a(5,5,5)=1;
h=slice(a,1:50,1:50,1:50);
shading flat;
axis equal;
%alpha(0.5);
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
效果图

img


我的方法无法得到一个完整的小正方体,一个点控制了三个面,不是多一个小面,就是少一个小面。
想要的效果是想让哪个小格子或小格子的一面显示就显示。