【发布时间】:2019-07-08 21:56:24
【问题描述】:
我正在尝试对 27 层模型字段中的变量求和。大多数变量适用于每一层,但对于其中一个变量,我正在衡量高度的变化,因此从给定层的总高度中减去前一层的“顶部高度”。
基本上,我只是不确定如何使用 for 循环在任何时候表示累积总和。
我目前正在尝试,根据我的代码,使用两个 for 循环来计算累积和并得到错误。
"Attempted to access flheight(299,162,0,12); index must be a positive integer or logical."
我知道这是因为 "flheight(299,162,0,12)" 不存在,因为第三维度没有 "layer = 0"。
no2molcm2 = 0;
dh = 0;
patm = 0;
no2ppm = 0;
for n=0:26
for i=1:27
T = Temp(299,162,i,12); % K
dh = (flheight(299,162,i,12)*100) -flheight(299,162,n,12)*100;
patm = sum(Pres(299,162,i,12))*(1/101325); %atm
R = 82.06; % cm3*atm/(k*mol)
av = 6.022140857747*(10^23); % 1/mol
no2ppm = sum(no2(299,162,i,12));
no2molcm2 = cumsum(((no2ppm*av*patm)/(R*T))*dh);
end
end
我的问题是我到底如何告诉 matlab,当它看到这个输入(或错误输出)时,将它设置为零?
【问题讨论】:
标签: matlab for-loop math sum cumsum