早教吧 育儿知识 作业答案 考试题库 百科 知识分享

Attemptedtoaccessf4(0);indexmustbeapositiveintegerorlogical.clc,clearv1=[];v2=[];v3=[];v4=[];s=13;foru=1:6ifs-3*u>=0v4(u+1)=u*4.4;elsebreakendifs-4*u>=0v3(u+1)=u*5.25;elsebreakend

题目详情
Attempted to access f4(0); index must be a positive integer or logical.
clc,clear
v1=[];v2=[];v3=[];v4=[];
s=13;
for u=1:6
if s-3*u>=0
v4(u+1)=u*4.4;
else
break
end
if s-4*u>=0
v3(u+1)=u*5.25;
else
break
end
if s-2.5*u>=0
v2(u+1)=u*3.1;
else
break
end
if s-2*u>=0
v1(u+1)=u*2.5;
else
break
end
end
%给f4赋值
u4=[];
for k=0:13/3
f4=v4;
u4=[u4,k];
end
f4,u4=[u4(1,:)]
%计算f3
f3=[];
cf3=[];
u3=[];
for k=0:13/3
for u=k:13/4
f3=[f3,5.25*u+f4(k-u+1)];
end
fm=max(f3);
cf3=[cf3,fm];%用来存放f3的最大值
a=find(f3==max(f3));%找到对应最大f3的u*并存放在a中
u3=[u3,a(1)-1];
end
cf3,u3
%计算f2
f2=[];
u2=[];
cf2=[];
for k=0:13/4
for u=k:13/2.5
f2=[f2,3.10*u+cf3(k-u+1)];
end
fm=max(f2);
cf2=[cf2,fm];
a=find(f2==max(f2));
u2=[u2,a(1)-1];
end
cf2,u2
%计算f1
f1=[];
u1=[];
cf1=[];
for k=0:13/2.5
for u=k:13/6
f1=[f1,2.50*u+cf2(k-u+1)];
end
fm=max(f1);
cf1=[cf1,fm];
a=find(f1==max(f1));
u1=[u1,a-1];
end
cf1,u1
▼优质解答
答案和解析
很明显的错误,matlab不同于C语言,矩阵索引必须是正整数
positive integer
Y(0,0);
0 ,0是不行的,知道了吧