看板 MATLAB 關於我們 聯絡資訊
以下是我寫的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
H45:錯誤訊息? 呼叫方的程式碼? b變數在哪? aniexc.mat存了什麼? 02/10 22:39
henry7448:b變數是b(1)b(2)b(3)這是ga toolbox自己會產生值出來 02/11 07:59
henry7448:然後aniexc.mat 裡面是240*3 矩陣資料 02/11 08:00
henry7448:錯誤訊息是 02/11 08:03
henry7448:Undefined function or method 'store' for input 02/11 08:03
henry7448:arguments of type 'double' 02/11 08:03
henry7448:我是使用optimazation 中genetic algorithm 02/11 08:08
henry7448:會不會是因為這工具箱不能設這樣的函數 02/11 08:11
henry7448:還有一個錯誤是顯示Output argument "rp" (and maybe ot 02/11 10:01
henry7448:not assigned during call to "C:\Users\henry chen\Des 02/11 10:02
H45:呼叫方程式碼出錯,你應po出有呼叫ga函式的程式碼 02/12 19:51
henry7448:可是我這是使用ga工具箱 02/14 23:24
henry7448:我呼叫函數的方式 就是在他要求的空格鍵入@store 02/14 23:26
H45:可能是路徑沒設到store.m的資料夾。假設你的store.m在"C:\abc" 02/15 23:10
H45:先執行 cd "C:\abc" 然後再開啟 ga 工具箱 02/15 23:11
henry7448:謝謝 我試出來了 02/16 09:21
henry7448:似乎是我沒設rp起始值 rp=0 02/16 09:26