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

📄 autoreject.m

📁 基于matlab的反演程序,用于地球物理勘探中射线追踪及偏移成像程序.
💻 M
字号:
function [cvpi,cvpj]=autoreject(cvpi,cvpj,nshots,dev,standard)

% Function used to reject some of the cross over point based on the standard
% deviation or a constant difference from the cross over point average for
% each shot

si=NaN.*ones(1,nshots);
sj=NaN.*ones(1,nshots);
mi=NaN.*ones(1,nshots);
mj=NaN.*ones(1,nshots);

% Call the function calculating the average cross over points 
[cvpavg cvpstd,cvpfold] = avgcvp(cvpi, cvpj,nshots);

% Cross over point average for each shot (cvpi=left side; cvpj=right side)
meani = cvpavg(:,1);
meanj = cvpavg(:,2);

devi = cvpstd(:,1);
devj = cvpstd(:,2);

% Determination of the bad cross over point based on the standard deviation 
% or a constant limit
for n=1:nshots
	% Average the cross over points for 'cvpi' (left side)
	validcvpi = find(~isnan(cvpi(n,:)));
	x=cvpi(n,validcvpi);
	d = abs(x - meani(n));
    if (standard==1)
	f = dev * devi(n); % rejection based on the standard deviation
    else
	f = dev; % rejection based on a constant limit
    end
        badcvpi = find(d>f);
	[a b]=size(badcvpi);
	if (b ~=0)
	   x(badcvpi)=NaN*badcvpi;
	   cvpi(n,validcvpi) = x;
	end

	% Average the cross over points for 'cvpj' (right side)
	validcvpj = find(~isnan(cvpj(:,n)));
	x=cvpj(validcvpj,n);
	d = abs(x - meanj(n));
    if (standard==1)
	f = dev * devj(n);
    else
	f = dev;
    end
        badcvpj = find(d>f);
	[a b]=size(badcvpj);
	if (b ~=0)
	   x(badcvpj)=NaN*badcvpj;
	   cvpj(validcvpj,n) = x;
	end
end




⌨️ 快捷键说明

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