使用具有单位延迟的矩阵然后将其传递给 SIMULINK 中的 MATLAB 函数时遇到问题

问题描述

我正在学习 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”导致 infnan

如何解决这个问题,以便我可以通过模型传递我的矩阵?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...