matlab void函数,在Matlab中存储函数循环中的值

我正在用Matlab编写一个函数来模拟中风病人住院时间。我很难存储我的输出值。 这里是我的功能:在Matlab中存储函数循环中的值

function [] = losdf(age, strokeType, dest)

% function to mdetermine length of stay in hospitaal of stroke patients

% t = time since admission (days);

% age = age of patient;

% strokeType = 1. Haemorhagic, 2. Cerebral Infarction, 3. TIA;

% dest = 5.Death 6.Nursing Home 7. Usual Residence;

alpha1 = 6.63570;

beta1 = -0.03652;

alpha2 = -3.06931;

beta2 = 0.07153;

theta0 = -8.66118;

theta1 = 0.08801;

mu1 = 22.10156;

mu2 = 2.48820;

mu3 = 1.56162;

mu4 = 0;

nu1 = 0;

nu2 = 0;

nu3 = 1.27849;

nu4 = 0;

rho1 = 0;

rho2 = 11.76860;

rho3 = 3.41989;

rho4 = 63.92514;

for t = 1:1:365

p = (exp(-exp(theta0 + (theta1.*age))));

if strokeType == 1

initialstatevec = [1 0 0 0 0 0 0];

elseif strokeType == 2

initialstatevec = [0 1 0 0 0 0 0];

else

initialstatevec = [0 0 (1-p) p 0 0 0];

end

lambda1 = exp(alpha1 + (beta1.*age));

lambda2 = exp(alpha2 + (beta2.*age));

Q = [ -(lambda1+mu1+nu1+rho1) lambda1 0 0 mu1 nu1 rho1;

0 -(lambda2+mu2+nu2+rho2) lambda2 0 mu2 nu2 rho2;

0 0 -(mu3+nu3+rho3) 0 mu3 nu3 rho3;

0 0 0 -(mu4+nu4+rho4) mu4 nu4 rho4;

0 0 0 0 0 0 0;

0 0 0 0 0 0 0;

0 0 0 0 0 0 0];

Pt = expm(t./365.*Q);

Pt = Pt(strokeType, dest);

Ft = sum(initialstatevec.*Pt);

Ft

end

end

然后运行我的功能我用: losdf(75,3,7)

我想从0到365绘制在图中我英尺的值天。做这个的最好方式是什么?

我是否需要首先将值存储在数组中,如果是这样的话,最好的方法是什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值