Matlab三维QSGS四参数法生成的随机结构如何立体可视化?

遇到的问题和发生背景

在Matlab上用四参数法QSGS随机生成的二维多孔介质,调用imshow函数就能显示,但QSGS生成的三维多孔介质不知道如何立体可视化。不需要切片图散点图曲面图等,效果参考底部附图。谢谢指教!

用代码块功能插入代码,请勿粘贴截图
xLen = 50; yLen = 50;d14 = 0.1; d58 = d14/4; n = 0.30;cdd = 0.02; 
numtotal_need = n*xLen*yLen;numsoild = 0; arrgrid = 0;
%% 1生成内核
for  i = 1:xLen
    for j = 1:yLen 
        if rand( )<cdd 
            numsoild = numsoild+1;arrgrid(i,j) = 1; 
            soild(numsoild,1) = i;soild(numsoild,2) = j;        
        end 
    end 
end 
Tnumsoild= numsoild; 
%% 2从内核生长
while Tnumsoild<numtotal_need                                                               
    for index_soild = 1:Tnumsoild 
        index_i = soild(index_soild,1); index_j = soild(index_soild,2); 
        if index_i<xLen 
            i = index_i+1; j = index_j; 
            if (arrgrid(i,j) == 0 && rand( )<d14) 
                numsoild = numsoild+1;arrgrid(i,j) = 1; 
                soild(numsoild,1) = i;soild(numsoild,2) = j; 
            end  
        end 
        if index_j<yLen 
            i = index_i; j = index_j+1; 
            if (arrgrid(i,j) == 0 && rand( )<d14) 
                numsoild = numsoild+1; arrgrid(i,j) = 1; 
                soild(numsoild,1) = i; soild(numsoild,2) = j; 
            end  
        end 
        if index_i>1 
            i = index_i-1; 
            j = index_j;
            if (arrgrid(i,j) == 0 && rand( )<d14) 
                numsoild = numsoild+1; arrgrid(i,j) = 1; 
                soild(numsoild,1) = i;soild(numsoild,2) = j; 
            end  
        end 
        if index_j>1
            i = index_i; j = index_j-1;  
            if (arrgrid(i,j) == 0 && rand( )<d14) 
                numsoild = numsoild+1; arrgrid(i,j) = 1; 
                soild(numsoild,1) = i; soild(numsoild,2) = j; 
            end  
        end 
        if index_i<xLen && index_j<yLen 
            i = index_i+1;j = index_j+1; 
            if (arrgrid(i,j) == 0 && rand( )<d14) 
                numsoild = numsoild+1; arrgrid(i,j) = 1; 
                soild(numsoild,1) = i;soild(numsoild,2) = j; 
            end  
        end 
        if index_i>1 && index_j<yLen
            i = index_i-1; j = index_j+1;
            if (arrgrid(i,j) == 0 && rand( )<d14) 
                numsoild = numsoild+1; arrgrid(i,j) = 1; 
                soild(numsoild,1) = i;soild(numsoild,2) = j; 
            end  
        end 
        if index_i>1 && index_j>1
            i = index_i-1;j = index_j-1;  
            if (arrgrid(i,j) == 0 && rand( )<d14) 
                numsoild = numsoild+1; arrgrid(i,j) = 1; 
                soild(numsoild,1) = i; soild(numsoild,2) = j; 
            end  
        end 
        if index_i<xLen && index_j>1 
            i = index_i+1;j = index_j-1; 
            if (arrgrid(i,j) == 0 && rand( )<d14) 
                numsoild = numsoild+1; arrgrid(i,j) = 1; 
                soild(numsoild,1) = i;soild(numsoild,2) = j; 
            end  
        end 
    end 
Tnumsoild=numsoild; 
end 
imshow(arrgrid);
运行结果

img

以上为二维QSGS代码生成二维结构及其可视化图像,如改写成三维QSGS调用imshow函数会报错并不能显示三维数组。

我想请教的问题

想请教Matlab上有相关函数可以实现三维QSGS生成的结构可视化吗?或者有没有其他软件可以处理Matlab导出的结构文件进行可视化?有的话该如何具体操作?

我想要达到的结果

img

img

问题补充:
针对的是三维QSGS生成的随机结构立体可视化方法,参考如图,可不局限于Matlab。随便检索的文件资源,自己都没有看过的话就不要浪费彼此时间了,十分谢谢!

参考一下

参考