s_rm_traces.m

来自「基于Matlab的地震数据处理显示和测井数据显示于处理的小程序」· M 代码 · 共 89 行

M
89
字号
function seisout=s_rm_traces(seismic,option)% Function removes traces %       which consist exclusively of null values or %       which have at least one null value% An alert is issued if no trace is output% Written by: E. R., January 6, 2001% Last updated: February 2, 2001: remove common leading and trailing nulls prior to applying selection criterion%%           seisout=s_rm_traces(seismic,option)% INPUT% seismic   seismic data set% option    option requested. Possible values are:%           'any'  a trace is discarded if it contains any null values%           'all'  a trace is discarded if all values are null values%           Default: 'all'%% See also: S_RM_TRACE_NULLSglobal S4Mseisout=seismic;if ~isfield(seismic,'null')  returnendif nargin == 1  option='all';end[nsamp,ntr]=size(seismic.traces);%       First remove any leading or trailing NaNs common to all tracestest=max(seismic.traces,[],2);index=find(~isnan(test));if isempty(index)   seisout=rmfield(seisout,{'traces','headers','header_info','null'});   disp(' Alert from "s_rm_traces": Seismic traces have only null values')   returnendseisout.traces=seismic.traces(index(1):index(end),:);seisout.first=seismic.first+(index(1)-1)*seismic.step;seisout.last=seismic.last-(nsamp-index(end))*seismic.step;index=sum(isnan(seisout.traces));switch option                case 'all'idx=find(index ~= nsamp);if isempty(idx)   seisout=rmfield(seisout,{'traces','headers','header_info','null'});   disp(' Alert from "s_rm_traces": Seismic traces have only null values')   returnendseisout.traces=seisout.traces(:,idx);seisout.headers=seisout.headers(:,idx);if sum(index(idx) == 0)  seisout=rmfield(seisout,'null');endhtext=[num2str(ntr-length(idx)),' traces (with all null values) removed'];                case 'any'idx=find(index == 0);if isempty(idx)   seisout=rmfield(seisout,{'traces','headers','header_info','null'});   disp(' Alert from "s_rm_traces": Seismic traces have only null values')   returnendseisout.traces=seisout.traces(:,idx);seisout.headers=seisout.headers(:,idx); seisout=rmfield(seisout,'null');htext=[num2str(ntr-length(idx)),' traces (with at least one null value) removed'];                otherwiseerror([' Unknown option: ',option])end		% End of switch blockif  S4M.history & isfield(seismic,'history')  seisout=s_history(seisout,'append',htext);end  

⌨️ 快捷键说明

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