Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2015-02-16, 14:54   #1
MATLAB2012b
初级会员
 
注册日期: 2015-02-16
年龄: 31
帖子: 1
声望力: 0
MATLAB2012b 正向着好的方向发展
默认 Attempted to access a(2); index out of bounds because numel(a)=1

function fit=fitness(individual)
%计算个体适应度值
%individual input 个体
%fit output 适应度值
%城市坐标
city_coordinate=[1304,2312;3639,1315;4177,2244;3712,1399;3488,1535;3326,1556;3238,1229;4196,1044;4312,790;4386,570;
3007,1970;2562,1756;2788,1491;2381,1676;1332,695;3715,1678;3918,2179;4061,2370;3780,2212;3676,2578;
4029,2838;4263,2931;3429,1908;3507,2376;3394,2643;3439,3201;2935,3240;3140,3550;2545,2357;2778,2826;2370,2975];
%货物量
carge=[20,90,90,60,70,70,40,90,90,70,60,40,40,40,20,80,90,70,100,50,50,50,80,70,80,40,40,60,70,50,30];
%找出最近配送点
for i=1:31
distance(i,=dist(city_coordinate(i,,city_coordinate(individual,');
end
[a,b]=min(distance');
%计算费用
for i=1:31
expense(i)=carge(i)*a(i);
end
%距离大于3000取一个惩罚值
fit=sum(expense) + 4.0e+4*length(find(a>3000));
end

>> fitness(5)
Attempted to access a(2); index out of bounds because numel(a)=1.

Error in fitness (line 18)
expense(i)=carge(i)*a(i);
这是免疫算法的一个函数,关于毕业论文的,请问怎么解决...
MATLAB2012b 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:38


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.