rdivide.m
来自「三谱混合相位子波估计!! 这是我的一篇文章所涉及到的matlab 源代码」· M 代码 · 共 64 行
M
64 行
function ds=rdivide(i1,i2)
% Function divides traces of a seismic dataset by a constant or matrix
% a constsnt or matrix by a seismic data set
% Written by: E. R.: September 11, 2005
% Last updated:
if isstruct(i1) & strcmp(i1.type,'seismic') & isnumeric(i2)
ds=i1;
sz=size(i2);
[nsamp,ntr]=size(i1.traces);
if prod(sz) == 1 | all(sz == [nsamp,ntr])
ds.traces=ds.traces./i2;
else
if all(sz == [1,ntr])
for ii=1:nsamp
ds.traces(ii,:)=ds.traces(ii,:)./i2;
end
elseif all(sz == [nsamp,1])
for ii=1:ntr
ds.traces(:,ii)=ds.traces(:,ii)./i2;
end
else
error('Operator "-" is not defined for this size of scaler.')
end
end
elseif isstruct(i2) & strcmp(i2.type,'seismic') & isnumeric(i1)
ds=i2;
sz=size(i1);
[nsamp,ntr]=size(i2.traces);
if prod(sz) == 1 | all(sz == [nsamp,ntr])
ds.traces=i1./ds.traces;
else
if all(sz == [1,ntr])
for ii=1:nsamp
ds.traces(ii,:)=i1./ds.traces(ii,:);
end
elseif all(sz == [nsamp,1])
for ii=1:ntr
ds.traces(:,ii)=i1./ds.traces(:,ii);
end
else
error('Operator "-" is not defined for this size of scaler.')
end
end
else
error('Operator "-" is not defined for these arguments.')
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?