⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 validation_proc.m

📁 Kriging插值matlab toolbox
💻 M
字号:
function validation_proc(opt)
%%  function validation_proc(opt) performs validation computation
%%   opt   =  1   Kriging map
%%            2   Kriging variance map
%%            3   Cross validation
%%
%%  Kriging Software Package  version 3.0,   May 1, 2004
%%  Copyright (c) 1999, 2001, 2004, property of Dezhang Chu and Woods Hole Oceanographic
%%  Institution.  All Rights Reserved.

global data para hdl


para.dispkrig.validation_model=get(hdl.validation.model,'value');


% computing   
flag=cross_validation(para.dispkrig.validation_model,opt);
if flag < 0
   return
end


%% plotting results of cross-validation computations
if data.in.dim == 2
   posvec=[0.15 0.4 0.6 0.5];
else
   posvec=[0.15 0.4 0.45 0.5];
end

%% clear graphic window
	figure(hdl.dispkrig3d.h0)
   delete(hdl.dispkrig3d.axes1);
	hdl.dispkrig3d.axes1 = axes('Parent',hdl.dispkrig3d.h0, ...
	'Color',[1 1 1], ...
   'Tag','dispkrig3dAxes1', ...
	'Position',posvec,'visible','on');

switch	para.dispkrig.validation_model 
		case 1 		% Q-1
			nq=2;
			n=length(data.in.x)-para.krig.model;
	   	    [x,fq,Qrej,fr]=pdf_func(para.dispkrig.validation_model,n);		  
			plot(x,fq,'m','linewidth',2.0)
			hold on
			plot(-Qrej*ones(1,2),[0 fr],'k',Qrej*ones(1,2),[0 fr],'k','linewidth',2.0);
			ht=text(-Qrej+0.02,0.5*fr,'Accept Region');
			if data.out.krig.q1 <= max(x) & data.out.krig.q1 >= min(x)
		   	plot(data.out.krig.q1*ones(1,nq),linspace(0,max(fq),nq),'-r','linewidth',1.5);
				hdt=text(data.out.krig.q1+0.02,0.8*max(fq),'Computed Q_1');
				set(hdt,'fontsize',8,'fontweight','bold');
			end
			title(sprintf('Q1 = %g',data.out.krig.q1),'fontweight','bold')
			hold off
			hx=xlabel('Q_1');
			hy=ylabel('PDF(Q_1)');
			set([hx hy ht],'fontweight','bold')
		case 2 		% Q-2
			nq=2;
			n=length(data.in.x)-para.krig.model;
	        [x,fq,Qrej,fr]=pdf_func(para.dispkrig.validation_model,n);		  
			plot(x,fq,'m','linewidth',2.0)
			hold on
			plot(Qrej(1)*ones(1,2),[0 fr(1)],'k',Qrej(2)*ones(1,2),[0 fr(2)],'k','linewidth',2.0);
			ht=text(Qrej(1)+0.1,0.5*fr(1),'Accept Region');
			if data.out.krig.q2 <= max(x) & data.out.krig.q2 >= min(x)
		   	plot(data.out.krig.q2*ones(1,nq),linspace(0,max(fq),nq),'-r','linewidth',1.5);
				hdt=text(data.out.krig.q2+0.02,0.8*max(fq),'Computed Q_2');
				set(hdt,'fontsize',8,'fontweight','bold');
			end
			title(sprintf('Q2 = %g',data.out.krig.q2),'fontweight','bold')
			hold off
			hx=xlabel('Q_2');
			hy=ylabel('PDF(Q_2)');
			set([hx hy ht],'fontweight','bold')
      case 3					% double kriging
         Is=data.out.krig.Is;
			sta=1:length(data.in.tv);
			plot(sta,data.in.tv,'-o',data.out.krig.sta,Is,'+-r');
			hh1=legend('Observation','Prediction',0);
			set(hh1,'fontsize',10)
			hx=xlabel('SAMPLE NUMBER');
            hy=ylabel('OBSERVATION AND PREDICTION');
            val_mean=mean_nan(data.in.tv(data.out.krig.sta)-Is);
            val_std=std_nan(data.in.tv(data.out.krig.sta)-Is);
            ht=title(['Double Kriging: <z - z*> = ' sprintf('%g',val_mean) '  \sigma = ' sprintf('%g',val_std)]);
			set([hx hy ht],'fontweight','bold')
		case 4		% JackKnife
			Ijk=data.out.krig.Ijk;
			sta=1:length(data.in.tv);
			plot(sta,data.in.tv,'-o',data.out.krig.sta,Ijk,'+-r');
			hh1=legend('Observation','Prediction',0);
			set(hh1,'fontsize',10)
			hx=xlabel('SAMPLE NUMBER');
			hy=ylabel('OBSERVATION AND PREDICTION');
         val_mean=mean_nan(data.in.tv(data.out.krig.sta)-Ijk);
         val_std=std_nan(data.in.tv(data.out.krig.sta)-Ijk);
         ht=title(['Leave One Out: <z - z*> = ' sprintf('%g',val_mean) '  \sigma = ' sprintf('%g',val_std)]);
			set([hx hy ht],'fontweight','bold')			
	end
   figure(hdl.validation.h0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -