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

functionf=myfun(x)矩阵定义省略forj=1:28a=0;fori=1;27;a=a+x(i)*A(i,j)*T(i);endJT1(j)=a;endforj=1:28a=0;fori=1;27;a=a+x(2*i)*A(i,j)*T(i);endJT2(j)=a;endforj=1:28a=0;fori=1;27;a=a+x(i*3)*A(i,j)*T(i);endJT3(j)=a;endN=[0,0];fori=1:27forj=

题目详情
function f = myfun(x)
矩阵定义省略
for j=1:28
a=0;
for i=1;27;
a=a+x(i)*A(i,j)*T(i);
end
JT1(j)=a;
end
for j=1:28
a=0;
for i=1;27;
a=a+x(2*i)*A(i,j)*T(i);
end
JT2(j)=a;
end
for j=1:28
a=0;
for i=1;27;
a=a+x(i*3)*A(i,j)*T(i);
end
JT3(j)=a;
end
N=[0,0];
for i=1:27
for j=1:28
if x(2*i)==1&&A(i,j)==1;
N(k)=j; k=k+1;
end
end
end
a=N(1);b=N(2);
if JT1(a)-JT1(b)>0; %这步就是错的
WT1(a)=JT1(a)-JT1(b);
else WT1(b)=JT1(b)-JT1(a);
end
k=1;
for i=1:27
for j=1:28
if x(3*i)==1&&A(i,j)==1;
N(k)=j; k=k+1;
end
end
end
a=N(1);b=N(2);
if JT2(a)+WT1(a)>JT2(b)+WT1(b)
WT2(a)=JT2(a)+WT1(a)-JT2(b)+WT1(b);
else WT2(b)=JT2(b)+WT1(b)-JT2(a)+WT1(a);
end
m=0;
for j=1:28
if JT1(m)+JT2(m)+JT3(m)+WT1(m)+WT2(m)
▼优质解答
答案和解析
你是如何判断你的代码出错了呢?如果你能通过某种依据确定程序执行到某一行时结果不对,那么就可以逐步的检查之前的代码来缩小搜索范围,并最终准确定位.
而且值得一提的是,你代码里大量的出现一些有问题的行,例如,你经常把:写成;
还有通常控制流程语句是不需要以;结尾的,如if for 等.先把这些语法问题订正了.至于订正后你的代码是否能达到你目的,鉴于你没有说明你到底想做什么,所以对不对就需要你自己判断了.