Error in ==> mu at 44 if nargin < 1 | nargin > 4 Warning: usage: [bnds,rowd,sens,rowp,rowg] = mu(matin,blk,opt)
2 次查看(过去 30 天)
显示 更早的评论
Hi,
I am writing code for some ODE's. I successfully got the plot. But when I type in
[T,V]= ode15s(@myfunc, [0.0018,100], [1.2005084e9, 1.0001628e9, 1.674764e8, 100], [],mu,DOBu,OBu,BLTGFB,...
lambdaLTGFB,KTGFBa1,KTGFBa2,lambdaTGFB,KARANK,Kres,DOBp,KTGFBr1,AOBa,DOCp,OCp,PRLd,BRANKL,...
KAOPG,R,row,lambdaRANKL,PTHtotal,KPTHtotala1,KPTHtotalr1,AOCa,KRANKLa1,Kform,POPGd,BOPG,OPGmax,lambdaOPG)
in the command window, it gives me this error:
Error in ==> mu at 44
if nargin < 1 | nargin > 4
Warning: usage: [bnds,rowd,sens,rowp,rowg] = mu(matin,blk,opt)
I wonder if someone could please help solve this problem.
Here is the code:
function main
figure(1)
OCp = 2.003456e9;
OBu = 5.118204e6;
Kform = 2.139651664708985e-11;
DOBu = 1.096776794643166e4;
DOBp = 0.252243443705397;
DOCp = 1.131894369544156;
mu = 1.00;
lambdaLTGFB = 11.4089;
BLTGFB = 0.480000192;
KTGFBa1 = 4.28e-4;
KTGFBa2 = 4.28e-4;
lambdaTGFB = 375.6523;
Kres = 1.277791975466394e-10;
KTGFBr1 = 2.49e-4;
AOBa = 3e-1;
PRLd = 0;
BRANKL = 2.153079478660874e-7;
KAOPG = 5.68e-2;
KARANK = 7.19e-2;
R = 1.28e1;
row = 1.9167e-6;
lambdaRANKL = 4.16;
KPTHtotala1 = 2.09e2;
KPTHtotalr1 = 2.21e-1;
AOCa = 1.2;
BPTH = 9.74e2;
lambdaPTH = 3.84e2;
KRANKLa1 = 4.79e1;
POPGd = 0;
BOPG = 2.0700e-6;
OPGmax = 7.98e2;
lambdaOPG = 4.16;
PTHrP = 0;
PTH = BPTH / lambdaPTH;
PTHtotal = PTH + PTHrP;
[T,V]= ode15s(@myfunc, [0.0018,100], [1.2005084e9, 1.0001628e9, 1.674764e8, 100], [],mu,DOBu,OBu,BLTGFB,...
lambdaLTGFB,KTGFBa1,KTGFBa2,lambdaTGFB,KARANK,Kres,DOBp,KTGFBr1,AOBa,DOCp,OCp,PRLd,BRANKL,...
KAOPG,R,row,lambdaRANKL,PTHtotal,KPTHtotala1,KPTHtotalr1,AOCa,KRANKLa1,Kform,POPGd,BOPG,OPGmax,lambdaOPG);
BoneT = V(:,4);
OCa = V(:,3);
OBa = V(:,2);
OBp = V(:,1);
subplot(1,2,1)
hold on
plot(T, OBp, 'c')
plot(T, OBa, 'b')
plot(T, OCa, 'r')
legend('OB_p', 'OB_a', 'OC_a');
ylabel('')
xlabel('Time t (days)')
title('Bone Cell Populations','FontSize',12)
hold off
subplot(1,2,2)
hold on
plot(T, BoneT, 'g')
ylabel('')
xlabel('Time t (days)')
title('Bone Volume','FontSize',12)
hold off
function dV = myfunc(t,V,mu,DOBu,OBu,BLTGFB,lambdaLTGFB,KTGFBa1,KTGFBa2,lambdaTGFB,KARANK,Kres,DOBp,...
KTGFBr1,AOBa,DOCp,OCp,PRLd,BRANKL,KAOPG,R,row,lambdaRANKL,PTHtotal,KPTHtotala1,KPTHtotalr1,AOCa,...
KRANKLa1,Kform,POPGd,BOPG,OPGmax,lambdaOPG)
BoneT = V(4);
OCa = V(3);
OBa = V(2);
OBp = V(1);
OPG = (BOPG .* (KPTHtotalr1 ./ (KPTHtotalr1 + PTHtotal)) .* OBa + POPGd) ./ ((BOPG ./ OPGmax) .* ...
(KPTHtotalr1 ./ (KPTHtotalr1 + PTHtotal)) .* OBa + lambdaOPG);
RANKL = (PRLd + BRANKL .* OBp) ./ ((1 + KAOPG .* OPG + KARANK .* R) .* ((BRANKL ./ (row .* (PTHtotal ./ ...
(PTHtotal + KPTHtotala1)))) + lambdaRANKL));
LTGFB = (mu .* Kres .* OCa) ./ (lambdaLTGFB + BLTGFB);
TGFB = (BLTGFB .* LTGFB) ./ (lambdaTGFB);
dOBp = DOBu .* OBu .* (TGFB ./ (TGFB + KTGFBa1)) - DOBp .* OBp * (KTGFBr1 ./ (TGFB + KTGFBr1));
dOBa = DOBp .* OBp .* (KTGFBr1 ./ (TGFB + KTGFBr1)) - AOBa .* OBa;
dOCa = DOCp .* OCp .* (RANKL ./ (RANKL + KRANKLa1)) - AOCa .* OCa .* (1+(TGFB ./ (TGFB + KTGFBa2)));
dBoneT = (Kform .* OBa) - (Kres .* OCa);
dV = [dOBp; dOBa; dOCa; dBoneT];
Thank you very much Pazzo
3 个评论
dpb
2013-8-4
What does
which mu
at the command line return?
Also
whos mu*
might be informative; then again maybe not...
Use the debugger--set a
dbstop on error
and see where it is. Somehow and it's impossible to see precisely from the code posted, Matlab indeed thinks mu is a function.
I don't understand the humongeous argument list to ode15s -- the doc here (R2012b) has only
ODEFUN,TSPAN,Y0,OPTIONS
as the argument list. It would certainly make it easier to debug if you could simplify somewhat...using named variables instead of the numeric vectors and such would be a start.
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!