本人根据http://muchong.com/html/201111/3749191.html随机生长法模拟多孔介质的二维代码编写了一个三维代码,但结果出来还是二维的,请求各位大神查一下错误在哪儿,并给出解决的方法,谢谢啦!
代码如下:
%======设定初值=============
clc;clear;
rand('state',0);
set(gcf,'DoubleBuffer','on');%消除振动
Cd=0.01;%生长核分布概率数
Vr=0.01;%生长相的体积分数
global kn
kn=500;
p=[1/8 1/8 1/8 1/8 1/4 1/4 1/4 1/4];%方向增长概率数
A=rand(kn,kn);%初始网格kn×kn
A(find(A<=Cd))=0;%黑色,生长核
A(find(A>Cd))=1;%白色
m=0;%迭代步骤
N=kn*kn*kn;%格点数
[x,y,z]=find(A==0);%生长核脚标
[y1,z] = ind2sub([kn,kn],y);
Ixy1z = sub2ind([kn,kn,kn],x,y1,z);
gn=length(Ixy1z);%生长核计数
Vs=gn/N %体积分数
%===========================
while Vs<0.001
xW=x-1;xE=x+1;
xW(xW==0)=1;% 对近邻进行边界条件处理
xE(xE==kn+1)=kn;% 对近邻进行边界条件处理
y1N=y1-1;y1S=y1+1;
y1N(y1N==0)=1;% 对近邻进行边界条件处理
y1S(y1S==kn+1)=kn;% 对近邻进行边界条件处理
zB=z-1;zT=z+1;
zB(zB==0)=1;% 对近邻进行边界条件处理
zT(zT==kn+1)=kn;% 对近