demovaryrp.m
来自「这是用matlab编写的支持向量机的函数工具箱」· M 代码 · 共 107 行
M
107 行
function ret= demovaryrP(x,o,t,rmin,rmax,movieS,memory,data,Nr,Ud)# usage # demovaryrP(x,o,t,rmin,rmax,movieS,memory,data,Nr,Ud)# do a demo using inputs x, etc. - came from demoxot# if datainc = 0 then data are left out# if datainc = 1 then data are included# works out logP along the way.# only makes sense if data=1 if (nargin != 6 && nargin != 7 && nargin != 8 && nargin != 9 && nargin != 10) usage ("demovaryrP(x,o,t,r,S,movieS[,memory[,data[,Nr[,Ud]]]])"); endif if (nargin != 7 && nargin != 8 && nargin != 9 && nargin != 10) memory = 0.8 ; endif if ( nargin != 8 && nargin != 9 && nargin != 10) data = 2 ; endif if ( nargin != 9 && nargin != 10) Nr=15; # must be 2 or more endif if ( nargin != 10) Ud=3; # number of ups and downs endiftitle = 0 ; # whether to show titleverbose = 0 ;jitter = 1e-4 ;firsttime=1;pausetime=0.2;s=size(x); X=s(2);style="@13";lstyle = "-@63" ; # style for line samplesplstyle = "-@53" ; # style for line samples, posteriormstyle = "-4" ; # style for mean (green lines -14)dlr = log(rmax/rmin) / ( Nr-1) ; dr0 = exp ( dlr ) ;firstrun = 1 ; logPr = [] ;gset label 1 "r" at -0.1,-1.8 rightwhile ( 1 ) r = rmin ; dr = dr0 ; for ud = 1:Ud for nr = 1:Nr if ( title ) command = sprintf ("gset title \"r = %4f\"", r); eval (command); else gset title "" ; endif if ( verbose ) sprintf ("r = %4f", r) fflush(stdout) ; endif CCIM ; indicator = mybox( 0 , r , -2 , 0.5 ) ; if ( data == 0 ) v=randn(size(x))*M ; vl = bubblex( M , v , movieS , memory , x , indicator ) ; else infer ; if(firsttime) plot ( xsub,t,style ) ; input("press return"); firsttime = 0 ; endif dv = randn(size(x)) * pp ; if ( movieS > 0 ) vl = bubblexmd( pp , dv , movieS , memory , x , mean,xsub,t,indicator ) ; else # make a green picture gplot xsubt u 1:2 w p 1 3 , xmsd u 1:2:3 w error 4 2 , xmean u 1:2 w l 4 2 , indicator u 1:2 w l 7 8 ; pause(pausetime); endif if ( firstrun) lp = logprob2d(CsubI,t) ; logPr(nr,:) = [ r , C(1,2) , lp , exp(lp) ] ; endif endif r = r * dr ;endfor # nrdr = 1/dr ;r = r * dr ;if(firstrun) firstrun=0 ; endifendfor # uds = input("to repeat, type a number - ");if ( s ) pausetime = pausetime * s ;else break ; endifendwhilegset nolabel 1gset title ""ret = logPr ;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?