Matlab: нелинейная регрессия, 2 критерия

Я пытаюсь подобрать нелинейную модель, используя 3 независимые переменные (свет, температура и дефицит давления пара (VPD)) для прогнозирования чистого обмена CO2 в экосистеме (NEE).

Я знаю, как использовать функцию nlinfit, но моя проблема в том, что я хочу использовать 2 критерия: -

1. if VPD < 1.3
NEE = (Param(1).*Param(2).*Ind_var(:,1))./(Param(1).*Ind_var(:,1)+Param(2)) + Param(3).*(1.6324.^((Ind_var(:,2)-18)./10));
2. if VPD >= 1.3
NEE = (Param(1).*(Param(2).*exp(-Param(4).*(Ind_var(:,3)-1.3))).*Ind_var(:,1))./(Param(1).*Ind_var(:,1)+(Param(2).*exp(-Param(4).*(Ind_var(:,3)-1.3))))+Param(3).*(1.6324.^((Ind_var(:,2)-18)./10));

По сути, если независимая переменная VPD (дефицит давления пара) ниже 1.3, я хочу принудительно установить Param(4) = 0.

Но я не знаю, как это сделать.

Не могли бы вы помочь мне? Спасибо, Алексис


person Alexandre Renchon    schedule 17.10.2016    source источник


Ответы (1)


Вы можете заменить Param(4) на Param(4)*(VPD<1.3). Условные выражения оцениваются как 1, если истина, и 0, если ложь в Matlab.

person Eric Fournie    schedule 17.10.2016