我想绘制安全系数的时间演变(FS,某个地区滑坡风险的量化)。
计算方法如下:
effcohesion=0;
rootcohesion=0;
gammat=12.9E3;
gammaw=9810;
c=0;
deltac=0;
m=0.5;
z=2.5;
phi=16;
slope=rand(20,20)*30 % slope of a gridpoint in area
Strength = c + deltac + (gammat - gammaw.*m).*z.*(cosd(slope).^2);
Stress = gammat.*z.*(sind(slope)).*(cosd(slope));
Part = tand(phi);
FS2 = (Strength./Stress).*(Part)
现在。 m值(=水位的高度,决定了FS)在一年中变化,因此不是恒定的。我有一个有降水,蒸发等数据的文件,但为了使它不太复杂,我在这里假设m只是一年中的一个函数:
mnew=zeros(365,1);
for t=1:365
mnew(t)=(m+t)/150;
end
我现在有一个FS为20x20点的数据集,其中m = 0.5(= FS2)和一年中演变为m(= mnew)的文件。
我现在如何创建一个3D矩阵,其中(1)FS的空间变化被存储(因此FS的值超过20x20矩阵)和(2)FS的全年函数的时间演变。最终,我想要一个矩阵,其中包含FS的空间和时间演变。
第1层=第1天所有20x20点的FS
第2层=第2天所有20x20点的FS
等
有人可以帮助我吗?
提前致谢!
答案 0 :(得分:2)
A" 3D矩阵"将更恰当地称为秩3阵列。为此,只需在时间循环中粘贴FS2
计算即可。不是m
,而是使用相应的mnew
来计算FS2
。然后将FS3
(排名3数组)的图层设置为FS2
。
然后,第1层(第1天)由FS3(:,:,1)
给出,第2层由FS3(:,:,2)
等给出。
m0=0.5;
% Sizes of array
n1 = 20;
n2 = 20;
n3 = 365;
FS3 = zeros(n1, n2, n3);
mnew=zeros(n3,1);
for t=1:n3
mnew(t)=(m0+t)/150;
effcohesion=0;
rootcohesion=0;
gammat=12.9E3;
gammaw=9810;
c=0;
deltac=0;
m = mnew(t);
z=2.5;
phi=16;
slope=rand(n1,n2)*30; % slope of a gridpoint in area
Strength = c + deltac + (gammat - gammaw.*m).*z.*(cosd(slope).^2);
Stress = gammat.*z.*(sind(slope)).*(cosd(slope));
Part = tand(phi);
FS2 = (Strength./Stress).*(Part);
FS3(:,:,t) = FS2;
end