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

📄 guieditsegytraceheader.m

📁 matlab源代码
💻 M
字号:
function varargout = GUIEditSegyTraceHeader(varargin)% GUIEditSegyTraceHeader Application M-file for GUIEditSegyTraceHeader.fig%    FIG = GUIEDITSEGYTRACEHEADER launch GUIEditSegyTraceHeader GUI.%    GUIEDITSEGYTRACEHEADER('callback_name', ...) invoke the named callback.% Last Modified by GUIDE v2.0 05-Jun-2002 09:24:38if (nargin == 0)|(isstruct(varargin{1}))  % LAUNCH GUI	fig = openfig(mfilename,'reuse');	% Use system color scheme for figure:	set(fig,'Color',get(0,'defaultUicontrolBackgroundColor'));	% Generate a structure of handles to pass to callbacks, and store it. 	handles = guihandles(fig);	guidata(fig, handles);    if nargin>0,       data = guihandles(fig); % initialize it to contain handles       data.H=varargin{1};       data.Horig=varargin{1};       data.Hname=fieldnames(data.H(1));        data.NShowHeaders=7; % NUMBER OF HEADER VALUES TO LIST       data.ShowNTraces=10; % NUMBER OF TRACES TO LIST        data.StartTrace=1;              set(handles.popHV1,'String',data.Hname);       set(handles.popHV2,'String',data.Hname);       set(handles.popHV3,'String',data.Hname);       set(handles.popHV4,'String',data.Hname);       set(handles.popHV5,'String',data.Hname);       set(handles.popHV6,'String',data.Hname);       set(handles.popHV7,'String',data.Hname);              set(handles.popHV1,'Value',2);       set(handles.popHV2,'Value',4);       set(handles.popHV3,'Value',5);       set(handles.popHV4,'Value',7);       set(handles.popHV5,'Value',13);       set(handles.popHV6,'Value',23);       set(handles.popHV7,'Value',24);       guidata(fig,data);              set(fig,'HandleVisibility','On')       GUIEditSegyTraceHeader('actionCreateHandles',fig,handles)       set(fig,'HandleVisibility','CallBack')    end    	% Wait for callbacks to run and window to be dismissed:	uiwait(fig);	if nargout > 0	  data=guidata(fig);	  if isstruct(data.H)	    varargout{1}=data.H;	  else	    varargout{1} = fig;	  end	end        closereq	elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK	try		if (nargout)			[varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard		else			feval(varargin{:}); % FEVAL switchyard		end	catch		disp(lasterr);	endend%| ABOUT CALLBACKS:%| GUIDE automatically appends subfunction prototypes to this file, and %| sets objects' callback properties to call them through the FEVAL %| switchyard above. This comment describes that mechanism.%|%| Each callback subfunction declaration has the following form:%| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES, VARARGIN)%|%| The subfunction name is composed using the object's Tag and the %| callback type separated by '_', e.g. 'slider2_Callback',%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.%|%| H is the callback object's handle (obtained using GCBO).%|%| EVENTDATA is empty, but reserved for future use.%|%| HANDLES is a structure containing handles of components in GUI using%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This%| structure is created at GUI startup using GUIHANDLES and stored in%| the figure's application data using GUIDATA. A copy of the structure%| is passed to each callback.  You can store additional information in%| this structure at GUI startup, and you can change the structure%| during callbacks.  Call guidata(h, handles) after changing your%| copy to replace the stored original so that subsequent callbacks see%| the updates. Type "help guihandles" and "help guidata" for more%| information.%|%| VARARGIN contains any extra arguments you have passed to the%| callback. Specify the extra arguments by editing the callback%| property in the inspector. By default, GUIDE sets the property to:%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo))%| Add any extra arguments after the last argument, before the final%| closing parenthesis.% --------------------------------------------------------------------function actionCreateHandles(h,handles)data=guidata(h);ShowNTraces=data.ShowNTraces;MainPos=get(handles.fMain,'Position');for ih=1:data.NShowHeaders   poph=findobj('tag',['popHV',num2str(ih)]);   HandlePos=get(poph,'Position');   X=HandlePos(1)+HandlePos(3);   Xdist=(MainPos(3)+MainPos(1))-(HandlePos(1)+HandlePos(3));   dx=Xdist/ShowNTraces;   ddx=.1;   % CREATE PLOT BUTTONS   Xwidth=HandlePos(1)-MainPos(1);   TagString=['PH',num2str(ih+10)];   h = uicontrol('units','normalized','Style', 'pushbutton','String','P',...        'Position', [MainPos(1)+ddx*Xwidth HandlePos(2) Xwidth-2*ddx*Xwidth HandlePos(4)],...        'Tag',TagString,...        'ToolTipstring',['Plot these header values'],...        'HorizontalAlignment','center',...        'Callback','GUIEditSegyTraceHeader(''actionPlotHeader'',gcbo,guidata(gcbo))');      % CREATE EDIT BOXES   for it=1:ShowNTraces;      Xpos=X+(it-1)*Xdist/(ShowNTraces);             TagString=['T',num2str(it+10),'H',num2str(ih+10)];      h = uicontrol('units','normalized','Style', 'edit','String','P',...        'Position', [Xpos+ddx*dx HandlePos(2) dx-2*ddx*dx HandlePos(4)],...        'Tag',TagString,...        'HorizontalAlignment','Right',...        'Callback','GUIEditSegyTraceHeader(''actionChangeValueAction'',gcbo,guidata(gcbo))');      endendfor it=1:ShowNTraces;      Xpos=X+(it-1)*Xdist/(ShowNTraces);       HeaderValuePos=get(handles.fHeaderValue,'Position');      TagString=['T',num2str(it+10)];      h = uicontrol('units','normalized','Style', 'edit','String','',...        'Position', [Xpos+ddx*dx HeaderValuePos(2) dx-2*ddx*dx HeaderValuePos(4)],...        'Tag',TagString,...        'HorizontalAlignment','Right',...        'Callback','GUIEditSegyTraceHeader(''actionHandleAction'',gcbo,guidata(gcbo))');    endactionUpdateHandles(h,handles)% --------------------------------------------------------------------function actionChangeValueAction(h,handles)data=guidata(h);Tag=get(h,'Tag');trace=str2num(Tag(2:3))-10+(data.StartTrace-1);ih=str2num(Tag(5:6))-10;poph=findobj('tag',['popHV',num2str(ih)]);headername=char(data.Hname(get(poph,'value')));% ONLY USE THE TYPES IN VALUE IF IT IS A NUMBERorigvalue=getfield(data.H(trace),headername);value=str2num(get(h,'string'));if isempty(value), value=origvalue; end% UPDATE THE HEADER VALUEdata.H(trace)=setfield(data.H(trace),headername,value);guidata(h,data);actionUpdateHandles(h,handles)% --------------------------------------------------------------------function actionUpdateHandles(h,handles)data=guidata(h);% MAKE SURE WE ARE NOT OUT OF BOUNDSif data.StartTrace<1, data.StartTrace=1; endif data.StartTrace>(length(data.H)-data.ShowNTraces+1), data.StartTrace=length(data.H)-data.ShowNTraces+1;endfor ih=1:data.NShowHeaders  poph=findobj('tag',['popHV',num2str(ih)]);  hname=char(data.Hname(get(poph,'value')));  for it=[1:data.ShowNTraces];    hvalue=getfield(data.H(it+data.StartTrace-1),hname);    TagString=['T',num2str(it+10),'H',num2str(ih+10)];    set(findobj('Tag',TagString),'String',hvalue);  endendfor it=1:data.ShowNTraces;  TagString=['T',num2str(it+10)];  set(findobj('Tag',TagString),'String',it+data.StartTrace-1);    endguidata(h,data);% --------------------------------------------------------------------function actionPlotHeader(h,handles,varargin)if length(varargin)==1  headers=varargin{1};else  Tag=get(h,'Tag');  headers=str2num(Tag(3:length(Tag)))-10;enddata=guidata(h);traces=[1:1:length(data.H)];figureset(gcf,'name','Plot of Trace Header Values') nheaders=length(headers);ch=0;for ih=headers   ch=ch+1;  subplot(nheaders,1,ch);    poph=findobj('tag',['popHV',num2str(ih)]);  hname=char(data.Hname(get(poph,'value')));  % GET HEADER VALUES FROM STRUCTURE  for it=1:length(traces), hv(it)=getfield(data.H(it),hname);  end    %bar(traces,hv);  area(traces,hv,min(hv(:)));  %hold on;bar(traces,hv);  hold off  if ch==nheaders,     xlabel(['TraceNumber']);  else    set(gca,'XtickLabel','');  end  ylabel(hname);  grid on  zoom on    end% --------------------------------------------------------------------function varargout = pbPlotAll_Callback(h, eventdata, handles, varargin)data=guidata(h);actionPlotHeader(h,handles,[1:1:data.NShowHeaders]);% --------------------------------------------------------------------function varargout = popHV_Callback(h, eventdata, handles, varargin)actionUpdateHandles(h,handles)% --------------------------------------------------------------------function varargout = popHV1_Callback(h, eventdata, handles, varargin)data=guidata(h);data.StartTrace=data.StartTrace+1;guidata(h,data);actionUpdateHandles(h,handles)% --------------------------------------------------------------------function varargout = popHV2_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = popHV3_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = popHV4_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = popHV5_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = popHV6_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = popHV7_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------% -------------- JUMP IN THE TRACES ----------------------------------% --------------------------------------------------------------------%% --------------------------------------------------------------------function varargout = pbLeftStart_Callback(h, eventdata, handles, varargin)data=guidata(h);data.StartTrace=1;guidata(h,data);actionUpdateHandles(h,handles)% --------------------------------------------------------------------function varargout = pbLeftJump_Callback(h, eventdata, handles, varargin)data=guidata(h);data.StartTrace=data.StartTrace-data.ShowNTraces;guidata(h,data);actionUpdateHandles(h,handles)% --------------------------------------------------------------------function varargout = pbLeft_Callback(h, eventdata, handles, varargin)data=guidata(h);data.StartTrace=data.StartTrace-1;guidata(h,data);actionUpdateHandles(h,handles)% --------------------------------------------------------------------function varargout = pbRight_Callback(h, eventdata, handles, varargin)data=guidata(h);data.StartTrace=data.StartTrace+1;guidata(h,data);actionUpdateHandles(h,handles)% --------------------------------------------------------------------function varargout = pbRightJump_Callback(h, eventdata, handles, varargin)data=guidata(h);data.StartTrace=data.StartTrace+data.ShowNTraces;StartTrace=data.StartTrace;guidata(h,data);actionUpdateHandles(h,handles)% --------------------------------------------------------------------function varargout = pbRightEnd_Callback(h, eventdata, handles, varargin)data=guidata(h);data.StartTrace=length(data.H)-data.ShowNTraces+1;guidata(h,data);actionUpdateHandles(h,handles)% --------------------------------------------------------------------function varargout = figure1_ResizeFcn(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = pbDone_Callback(h, eventdata, handles, varargin)uiresume;% --------------------------------------------------------------------function varargout = pbClose_Callback(h, eventdata, handles, varargin)data=guidata(h);data.H=data.Horig;guidata(h,data);uiresume;% --------------------------------------------------------------------function varargout = pbReset_Callback(h, eventdata, handles, varargin)data=guidata(h);data.H=data.Horig;guidata(h,data);actionUpdateHandles(h,handles)

⌨️ 快捷键说明

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