copy_fields.m
来自「实现地震勘探中」· M 代码 · 共 50 行
M
50 行
function dsout=copy_fields(dsin,dsout)% Function copies fields in dataset "dsin" to "dsout" if they do not % exist in dataset "dsout".% A field "null" is added if fields "traces" or "curves" contain NaNs.%% Written by: E. R.: August 1, 2006% Last updated:%% dsout=copy_fields(dsin,dsout)% INPUT% dsin dataset from which to copy fields% dsout dataset to which to copy fields% OUPUT% dsout second input dataset with additional fields from first data setif nargin == 1 || isempty(dsout) dsout=dsin; returnendfieldsin=fieldnames(dsin);fieldsout=[fieldnames(dsout);{'null'}]; % "null" is added, so that it % will not be copiedindex=find(~ismember(fieldsin,fieldsout));for ii=1:length(index) dsout.(fieldsin{index(ii)})=dsin.(fieldsin{index(ii)});% dsout=setfield(dsout,fieldsin{index(ii)},getfield(dsin,fieldsin{index(ii)}));endswitch dsin.typecase 'well_log'% Check for null values in log curves if ~isfield(dsout,'null') && any(any(isnan(dsout.curves(:,2:end)))) dsout.null=NaN; endcase 'seismic'% Check for null values in dsmic traces if ~isfield(dsout,'null') && any(isnan(dsout.traces(:))) dsout.null=NaN; endotherwise alert(['Unknown dataset type: ',seisin.type]) end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?