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 + -
显示快捷键?