MATLAB中怎么写子函数,如何调用,请高手帮我解读一下这段程序;

%适应度函数(fitness.m)
function result=fitness(x,D)
sum=0;
for i=1:D
sum=sum+x(i)^2;
end
result=sum;
这里哪是子函数的名称?子函数在MATLAB中应该先写还是后写?

fitness是子函数的名称
本函数求的是x数组的前D个数的平方和
子函数在MATLAB中单独作为.m文件
文件名与函数名一致即可追问

这一段是一个完整的子函数吗?怎么我直接COPY到MATLAB中会提示没有fitness这个功能,如果我想在MATLAB中写入这个子函数应该怎么写?请给个完整的可以写入MATLAB的子函数程序。主函数是在这里调用了这个子函数:
%-----初始化种群个体(在此限定速度和位置)------------
x2=x;
v2=v;
%-----初始化种群个体最有位置和 最优解-----------
p2=x2;
pbest2=ones(N,1);
for i=1:N
pbest2(i)=fitness(x2(i,:),D);
end

追答

主程序里要注意D的取值
子函数在MATLAB中单独作为.m文件
将内容输入即可

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-26
楼上基本上都说完了,另外你的程序有个bug,就是应该先判断D是不是大于了向量的长度,否则调用的时候会犯错的。保存的时候文件名与函数名一致,保存在当前工作目录下。
相似回答