两个脚本,第一个能顺利运行,运行第二个时显示输入参数数目不足
%第一个脚本
clear all;close all;clc;
%宽和长%
width=78;
height=52;
w1=0.6;
w2=0.4;
%计算dmax%
dmax=width+height;
%运输成本 %
c=0.01;
%距离矩阵%
D = zeros(12,12);
%关联因子bij矩阵%
B = zeros(12,12);
u1=0;
u2=0;
%非物流关系矩阵%
T=[
0 3 0 0 1 2 0 0 0 0 1 0;
0 0 1 0 0 -1 0 0 0 2 0 0;
0 0 0 3 0 -1 0 0 0 2 0 0;
0 0 0 0 4 -1 0 0 0 0 0 0;
0 0 0 0 0 3 0 0 0 1 0 0;
0 0 0 0 0 0 2 -1 -1 2 -1 -1;
0 0 0 0 0 0 0 4 0 0 0 0;
0 0 0 0 0 0 0 0 0 1 3 0;
0 0 0 0 0 0 0 0 0 2 0 0;
0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 4;
0 0 0 0 0 0 0 0 0 0 0 0;
];
%设定物流量%
Q=[
0 50000 1258 0 8400 13600 0 0 0 0 9625 0;
0 0 6600 0 0 0 0 0 0 34800 0 0;
0 0 0 87500 0 0 0 0 0 41600 0 0;
0 0 0 0 105000 0 0 0 0 0 0 0;
0 0 0 0 0 92000 0 0 0 6400 0 0;
0 0 0 0 0 0 36000 0 0 28700 0 0;
0 0 0 0 0 0 0 93000 0 0 0 0;
0 0 0 0 0 0 0 0 910 6300 79980 0;
0 0 0 0 0 0 0 0 0 16800 0 0;
0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 93600;
0 0 0 0 0 0 0 0 0 0 0 0;
];
%% 计算u1 %%
cd=c*dmax;
for i=1:10
for j=i+1:11
u1=u1+cd*Q(i,j);
end
end
u1=w1/u1;
%% 计算u2 %%
for i=1:10
for j=i+1:11
u2=u2+T(i,j);
end
end
u2=w2/u2;
%第二个脚本
function fit=compute_fit(par)
MAX=0;
A1=0;
A2=0;
%% 固定系数
u1=1.4e-6;
u2=1.5e-2;
%% 计算参数
[c Q T D B]=load_data(par);
l=[20 35 25 10 20 22 22 20 8 10 28];
w=[20 15 22 28 15 28 25 28 25 15 22];
l=l-3*ones(1,11);
w=w-3*ones(1,11);
H=80;
W=90;
flag=0;
%% 计算第一项和第二项 目标函数第一项
for i=1:10
for j=i+1:11
A1 = A1 + c*Q(i,j)*D(i,j);
A2 = A2 + c*T(i,j)*B(i,j);
end
end
%% 计算约束
for i=1:10
pp1 =par.x(i)-l(i)/2;
pp2 =par.y(i)-w(i)/2;
pp3 =H-l(i)/2-par.x(i);
pp4 =W-w(i)/2-par.y(i);
if ( pp1<0 || pp2<0 || pp3<0 || pp4<0 )
flag=1;
break;
end
for j=1:10
if (i==j)
continue;
end
kk1=max([l(i)/2 + l(j)/2 - abs(par.x(i) - par.x(j)),0]);
kk2=max([w(i)/2 + w(j)/2 - abs(par.y(i) - par.y(j)),0]);
if ((kk1*kk2) ~= 0)
flag = 1;
break;
end
end
if ( flag == 1)
break;
end
end
%% 计算适应度
if (flag == 1)
fit=-1;
else
fit=1/(MAX + u1*A1 + u2*A2);
end
end
错误结果
![img](
######https://img-mid.csdnimg.cn/release/static/image/mid/ask/834803096546162.png "#left")
我的解答思路和尝试过的方法
看起来是第二个脚本在引用第一个脚本的参数时出现了问题,尝试过改第一个脚本的文件名,不起作用
我想要达到的结果
分析第二个脚本参数不足的原因并给出修改意见,使第二个脚本顺利运行,最终得到fit的值