Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-11-13
年龄: 46
帖子: 3
声望力: 0 ![]() |
![]()
本人在运用matlab R2010b自带的遗传算法工具箱搜索3个参数,定义的适应函数为source.m。
运行时总是提示: ??? Index exceeds matrix dimensions. Error in ==> initializega at 66 rng = (bounds(:,2)-bounds(:,1))'; %The variable ranges' Error in ==> ga at 148 startPop=initializega(80,bounds,evalFN,evalOps,opts(1:2)); Error in ==> tmp at 113 zwj= ga(@source,3,[],[],[],[],lb,ub); %------以下是原代码--------------- lb=[0 1 10]; % 三个参数的下界 ub=[10 15 1000]; % 三个参数的上界 options = gaoptimset('InitialPopulation',[.2 2 200]);% 给初始值 zwj= ga(@source,3,[],[],[],[],lb,ub); % -------------定义的适应函数为source.m function sum=source(x) [f u]=textread('SourceAmp.dat','%f %f'); sum=0; Vsp=8.4; p=load('p.txt'); s=load('s.txt'); Tsp=s-p; r=Tsp.*Vsp; for i=1:length(f) obs=u(i); teo=x(:,1)./(1+(f(i)./x(:,2)).^2).*exp(-pi.*r.*f(i)./3.5./x(:,3)); sum=sum+(teo-obs).^2./sqrt(teo.*obs); end |
![]() |
![]() |