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