Error in ==> mu at 44 if nargin < 1 | nargin > 4 Warning: usage: [bnds,rowd,sens,rowp,rowg] = mu(matin,blk,opt)
조회 수: 6 (최근 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!