??? Error using ==> double Too many input arguments.

조회 수: 3 (최근 30일)
Bart
Bart 2012년 2월 3일
편집: Jan 2013년 9월 27일
>> syms x t
total = 0;
totalmax = 0;
trest = 0;
t2 = 0;
ton = 0;
h = 0;
pulse = 1;
totaltime = 1440;
p = 5.119*exp(-0.08898*h)+ 13.47*exp(-0.0003734*h);
while pulse <= 1440
while total >= totalmax
for trest=0:totaltime
ton = (totaltime - trest)/pulse;
for i=1:pulse
t2 = double(solve(5.119*exp(-0.08898*t)+ 13.47*exp(-0.0003734*t)-p,'t'));
p = (5.119*exp(-0.08898*(t2+ton))+ 13.47*exp(-0.0003734*(t2+ton)) + 0.05262*trest);
total = total + double(int(5.119*exp(-0.08898*x)+13.47*exp(-0.0003734*x)),x,t2,t2+ton);
end
if total >= totalmax
totalmax = total;
else
trest = trest + 0,01;
if trest == 20
print trest;
end
end
end
pulse = pulse + 1;
print pulse;
end
end
Hi everybody, I seem to be running into trouble where I do the integration, I haven't got a clue how to solve this error though as it seemed to work just fine when I used numerical data for ton and trest.
Please, release me from my misery :D

채택된 답변

Walter Roberson
Walter Roberson 2012년 2월 3일
Your line
total = total + double(int(5.119*exp(-0.08898*x)+13.47*exp(-0.0003734*x)),x,t2,t2+ton);
should be
total = total + double(int(5.119*exp(-0.08898*x)+13.47*exp(-0.0003734*x),x,t2,t2+ton));
  댓글 수: 2
Bart
Bart 2012년 2월 3일
Shouldn't try to write code so late in the evening :D
Kevin Holst
Kevin Holst 2012년 2월 3일
you beat me to it!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Kevin Holst
Kevin Holst 2012년 2월 3일
total = total + double(int(5.119*exp(-0.08898*x)+13.47*exp(-0.0003734*x)),x,t2,t2+ton);
Your parentheses are incorrect here. I assume x,t2,t2+ton are parameters for int, they're being input into double (which only wants one input). try:
total = total + double(int(5.119*exp(-0.08898*x)+13.47*exp(-0.0003734*x),x,t2,t2+ton));

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by