输入参数的数目不足(因为变量 t 在函数里是变化的,不能用命令行直接给定数值),该怎么办

img

img



function y=repaire(t)

y=0.4*t^1.3;        %残值

function y=residual(t,pt)

y=(0.85^t)*pt;


B=[7.2,9.6,9.12,8.482,8.058];    %汽车价格

C=[7.2,10.56,10.032,9.330,8.863];   %汽车购置费

A=zeros(5,5);

for i=1:5

if i==1

t=4;

else

t=1;

end

for j=i:5

y1=repaire(t);

if i==1

y2=residual(t-3,B(i));

else

y2=residual(t,B(i));

end

if j==i

switch i

case 1

A(i,j)=cost(C(i),y1,y2);

case 2

Q=A(:,1);

Q(Q==0)=NaN;

m=min(Q);

A(i,j)=cost(C(i),y1,y2)+m;

case 3

Q=A(:,2);

Q(Q==0)=NaN;

m=min(Q);

A(i,j)=cost(C(i),y1,y2)+m;

case 4

Q=A(:,3);

Q(Q==0)=NaN;

m=min(Q);

A(i,j)=cost(C(i),y1,y2)+m;

case 5

Q=A(:,4);

Q(Q==0)=NaN;

m=min(Q);

A(i,j)=cost(C(i),y1,y2)+m;

end

else

A(i,j)=cost(y2/0.85,y1,y2)+A(i,j-1);

end

t=t+1;

end

end

DISP(A)


你好同学。
你的代码逻辑比较混乱,两个函数堆叠在一起,而且第二个函数都有返回值y了,后面那些代码都是浪费。cost函数也没给出,这样吧,你把应用背景讲一下,帮你捋一捋代码。