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

📄 l_compare.m

📁 基于Matlab的地震数据处理显示和测井数据显示于处理的小程序
💻 M
字号:
function l_compare(varargin)% Function plots curves from one or more logs onto one plot. If depth units or curve units differ% they are automatically converted to those of the first curve (if a conversion is known; see% function "l_unit_conversion")% Written by: E. R.: September 1, 2000% Last updated: November 23, 2005: Add cursor tracking and figure export button%%            l_compare(varargin)% INPUT% varargin   one or more cell arrays; the first element of each cell array is either a log structure,%            or the keyword 'parameters'. %            In the first case the following arguments contain a curve mnemonic, possibly followed by%            one or more cell arrays with parameters. Each cell array starts with a keyword. The%            following keywords are allowed:%            'color'   Color of the curve.%                      Default: {'color','r'} for the first curve,%                               {'color','b'} for the second curve, ...%            'linewidth' Linewidth of the curve%                      Default{'linewidth',1}%            'legend'  Legend (annotation) of curve. Default: curve mnemonic       %%            If the first element is the keyword 'parameters' the following arguments are cell arrays; %            the first element of each cell array is a keyword, the other elements are parameters. %            Presently, keywords are:%            'lloc'   numeric parameter specifying the location of the legend;%                     Default: {'legend',4}%            'depths' first and last depth to plot (two comma-separated numbers or a two-element%                     vector)%                     Default: {'depths',d_min,d_max}     where "d_min" = min(log.first) and%                              "d_max" is max(log.last) for all logs used% EXAMPLES%            l_compare({log1,'DT',{'color','r'},{'linewidth',2},{'legend','Sonic log'}})%            l_compare({log1,'DT',{'color','r'}},{log2,'DT',{'color','g--'}},{'parameters',{'lloc',2}})%            l_compare({log1,'DT'},{log1,'DTCO'})            plots two different curves from the same logglobal S4Mif ~iscell(varargin{1})   varargin={varargin};endnargs=length(varargin);color={'r','b','g','k','c','m','y','r--','b--','g--','k--','c--','m--','y--'};parameters.lloc=4;parameters.depths=[];pfigureset(gcf,'DoubleBuffer','on')for ii=nargs:-1:1   argument=varargin{ii};   login=argument{1};   if ~isstruct(login)      if strcmpi(login,'parameters')         parameters=assign_input(parameters,argument(2:end));         break      else         error(' First element of input cell array is neither a log nor the keyword "parameters"')      end   endend  icurve=1;for ii=1:nargs  argument=varargin{ii};  login=argument{1};            if isstruct(login)  mnemonic=argument{2};%       Default settings  compare.linewidth=2;  compare.color=color{icurve};  compare.legend=strrep(mnemonic,'_','\_');%       Decode and assign input arguments  if length(argument) > 2     compare=assign_input(compare,argument(3:end));  end  %       Find requested curve  idx=curve_index1(login,mnemonic);  curve_units=login.curve_info{idx,2};  depth_units=login.curve_info{1,2};  if icurve == 1     set(gca,'YDir','reverse','XAxisLocation','top');     hold on     old_curve_units=curve_units;     old_depth_units=depth_units;     ltext=compare.legend;     xlabel(units2tex(curve_units),'FontSize',13,'FontWeight','bold','Fontname',S4M.font_name);     ylabel(info2label(login.curve_info(1,:)), ...          'FontSize',13,'FontWeight','bold','Fontname',S4M.font_name)  else     login=l_unit_conversion(login,{depth_units,old_depth_units},{curve_units,old_curve_units,mnemonic});     ltext=char(ltext,compare.legend);  end   curve=login.curves(:,idx);  depth=login.curves(:,1);  if ~isempty(parameters.depths)     if iscell(parameters.depths)        parameters.depths=cat(2,parameters.depths{:});     end     idx=find(depth >= parameters.depths(1) & depth <= parameters.depths(2));     depth=depth(idx);     curve=curve(idx);  end  plot(curve,depth,compare.color,'LineWidth',compare.linewidth)  icurve=icurve+1;            endend  timeStamplegend(ltext,parameters.lloc)grid, zoom on%       Add button for cursor tracking and for figure export   figure_export_menuinitiate_2d_tracking(login.curve_info(idx,:),login.curve_info(1,:))

⌨️ 快捷键说明

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