我正在尝试生成HH模型的动作电位,我需要计算alphaN率。但是,在一些值,它们是0/0,所以我需要使用L'hopitals规则。我似乎无法使脚本工作。有人可以帮忙吗? 如何为一系列数字执行if语句?像:
if Vm == -50:-49
syms Vm;
x = diff((0.01.*(10-(Vm+60))));
y = diff((exp((10-(Vm+60))./10)-1));
alphaN = x./y;
else
alphaN = (0.01.*(10-(Vm+60)))./(exp((10-(Vm+60))./10)-1); % l/ms
betaN = 0.125*exp(-(Vm+60)/80); % 1/ms
end
plot(alphaN,Vm)
然而,有了上面的脚本,我得到矩阵不同意。我怎样才能做到这一点?希望这只是我忘记的事情。
感谢您的帮助!
答案 0 :(得分:3)
要测试Vm
是否在a
和b
之间,请编写
if Vm >= a && Vm <= b %# include a and b
测试Vm
是否为a
和b
之间的任意整数
if any(Vm == a:b)
答案 1 :(得分:0)
您可以使用开关/案例构造:
Vm_all = -50:50; %all Vm
for ii = 1:length(Vm)
Vm = Vm_all(ii);
switch Vm
case {-50,-49}
syms Vm;
x = diff((0.01.*(10-(Vm+60))));
y = diff((exp((10-(Vm+60))./10)-1));
alphaN(ii) = x./y;
betaN(ii) = NaN;
otherwise
alphaN(ii) = (0.01.*(10-(Vm+60)))./(exp((10-(Vm+60))./10)-1);
betaN(ii) = 0.125*exp(-(Vm+60)/80);
end
end
这样,无论您的特定值是连续的还是其他任何内容都无关紧要,只需键入逗号分隔即可。
如果您的阵列中包含exc = [-50,-49,-12,42]
等例外情况,则可以按照以下方式使用它作为开关/案例:
case {exc(:)}