各位大哥,小弟新手在写matlab一个仓库路径优化的code,但一直都run不过去,但看不出来哪一步出错,想请教一下各位大佬
Error: File: sp.m Line: 52 Column: 31
Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for
mismatched delimiters.
Error in d (line 9)
SP=sp(n)
function SP=sp(n)
for i=1:2
if rem(i,2)==1
d(i,i+2)=(max(n(i,1), n(i+1,1))+2)*2+9;
else
d(i,i+2)=(24-min(n(i+1,2), n(i+2,2))+2+2)*2+11;
end
end
for i=3:4
if rem(i,2)==1
d(i,i+2)=(max(n(i,1), n(i+1,1))+2)*2+11;
else
d(i,i+2)=(24-min(n(i+1,2), n(i+2,2))+2+2)*2+11;
end
end
for i=5
d(i,i+2)=(max(n(i,1), n(i+1,1))+2)*2+11;
end
d(6,8)=9;
d(7,9)=9;
d(9,10)= (max(n(i,1), n(i+1,1))+2)*2;
for i=1:2
if rem(i,2)==1
d(i,i+1)=37;
else
d(i,i+3)=39;
end
end
for i=3:4
if rem(i,2)==1
d(i,i+1)=39;
else
d(i,i+3)=39;
end
end
for i=5:6
if rem(i,2)==1
d(i,i+1)=39;
else
d(i,i+3)=37;
end
end
for i=7
d(i,i+1)=37;
end
d(8,10)=28;
pl(1)=0;
pl(2)=d(1,2);
pl(3)=d(1,3);
for i=4:10
if rem(i,2)==0
pl(i)=min((pl(i-1)+d(i-1,i),(pl(i-2)+d(i-2,i)));
else
pl(i)=min((pl(i-2)+d(i-2,i),(pl(i-3)+d(i-3,i)));
end
end
SP=pl(10)
end
end
第二段
%mainfuntion
clc
clear
n(1,1)=10;n(1,2)=10;n(2,1)=22;n(2,2)=22;
n(3,1)=18;n(3,2)=16;n(4,1)=12;n(4,2)=12;
n(5,1)=14;n(5,2)=14;n(6,1)=12;n(6,2)=12;
n(7,1)=0;n(7,2)=0;n(8,1)=0;n(8,2)=0;
n(9,1)=16;n(9,2)=6;n(10,1)=12;n(10,2)=12;
SP=sp(n)
52行错误的原因为 左右括号不匹配,建议修改为
pl(i)=min(pl(i-1)+d(i-1,i), pl(i-2)+d(i-2,i));
54行也有同样的错误,建议修改为
pl(i)=min(pl(i-2)+d(i-2,i), pl(i-3)+d(i-3,i));
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y