问题描述
我正在学习 MATLAB 并试图为年龄结构的人群构建一个离散模型。使用 Simulink onRamp 的帮助,我创建了以下模型。 Simulink Model
对于我在单位延迟块中的初始条件。我在初始条件框中输入了一个矩阵(4 行 x 1 列),并将采样时间设置为 1。然后这个矩阵将传递到我的 MATLAB 函数块中。
function [LifeTable,TotalPopulation,p]= fcn(pop1_bx,pop)
% Survivorship Calculations
l1 = 1;
l2 = pop(2) / pop(1);
l3 = pop(3) / pop(1);
l4 = pop(4) / pop(1);
lx = [l1; l2; l3; l4];
% Probability of Survivorship to next Age Class calculation
p1 = lx(1);
p2 = lx(2) / lx(1);
p3 = lx(3) / lx(2);
p4 = lx(4) / lx(3);
p = [p1; p2; p3; p4];
% Fertility Calculation
F = p .* pop1_bx;
LifeTable = F .* pop;
TotalPopulation = sum(LifeTable,1);
对不起,如果我的代码不够好,这是我第二次真正尝试 MATLAB
"pop1_bx" 是一个直接传递到块中的工作区变量(这里没有问题) 问题是应该保存我的矩阵的 "pop" 变量。除非我运行模型时没有。如果您查看上面链接的照片,您可以看到“pop”导致 inf 和 nan。
如何解决这个问题,以便我可以通过模型传递我的矩阵?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)