[問題]ga工具箱中fitness function寫法
以下是我寫的fitness function 但是我實際利用matlab 內建ga 工具箱運作時
卻一直跑出error 我想請問我這函數 是否有那裡寫錯 語法或邏輯??
利用ga工具箱最終結果應會跑出b(1),b(2),b(3)最佳解出來 謝謝
function rp = store(b)
global x;
global y;
global xlag;
global t;
global trim_;
trim_=.05;
k=1;
load aniexc.mat;
dat=aniexc;
n=length(dat(:,1));
y=dat(2+k:n,:)-dat(1+k:n-1,:);
t=length(y(:,1));
xlag=dat(1+k:n-1,:);
j=1;
while j<=k
x=[ones(t,1),dat(2+k-j:n-j,:)-dat(1+k-j:n-1-j,:)];
j=j+1;
end;
xx=inv(x'*x);
u=y-x*xx*(x'*y);
w=xlag*[1;-b(1);-b(2)];
z=[w,x];
d1=(w<=b(3));
n1=sum(d1)';
if min([n1;t-n1])/t>trim_
zj=[(z.*(d1*ones(1,length(z(1,:))))),w];
zzj=zj-x*xx*(x'*zj);
warning off;
lastwarn(' ');
bz=(u'/zzj')';
[mw,idw] = lastwarn;
lastwarn(' ');
warning on;
if (1-mw==' ');
bz=pinv(zzj'*zzj)*(zzj'*u);
end;
end;
rp = (t/2)*log(det((u-zzj*bz)'*(u-zzj*bz)/t));
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.125.103
→
02/10 22:39, , 1F
02/10 22:39, 1F
→
02/11 07:59, , 2F
02/11 07:59, 2F
→
02/11 08:00, , 3F
02/11 08:00, 3F
→
02/11 08:03, , 4F
02/11 08:03, 4F
→
02/11 08:03, , 5F
02/11 08:03, 5F
→
02/11 08:03, , 6F
02/11 08:03, 6F
→
02/11 08:08, , 7F
02/11 08:08, 7F
→
02/11 08:11, , 8F
02/11 08:11, 8F
→
02/11 10:01, , 9F
02/11 10:01, 9F
→
02/11 10:02, , 10F
02/11 10:02, 10F
→
02/12 19:51, , 11F
02/12 19:51, 11F
→
02/14 23:24, , 12F
02/14 23:24, 12F
→
02/14 23:26, , 13F
02/14 23:26, 13F
→
02/15 23:10, , 14F
02/15 23:10, 14F
→
02/15 23:11, , 15F
02/15 23:11, 15F
→
02/16 09:21, , 16F
02/16 09:21, 16F
→
02/16 09:26, , 17F
02/16 09:26, 17F