Я пытаюсь найти сумму переменных в модельном поле из 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, что, когда он видит этот вход (или вывод ошибки), просто установить его равным нулю?