📄 mfbox_pre_selecttimestepsg.m
字号:
function varargout=mfbox_pre_selecttimestepsg(varargin)% MFBOX_PRE_SELECTTIMESTEPSG M-file for mfbox_pre_selecttimestepsg.fig%% See also: GUIDE, GUIDATA, GUIHANDLES%% Copyright by Peter Gruber and Fabian J. Theis% Signal Processing & Information Theory group% Institute of Biophysics, University of Regensburg, Germany% Homepage: http://research.fabian.theis.name% http://www-aglang.uni-regensburg.de%% This file is free software, subject to the % GNU GENERAL PUBLIC LICENSE, see gpl.txt% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',mfilename, ... 'gui_Singleton',gui_Singleton, ... 'gui_OpeningFcn',@mfbox_pre_selecttimestepsg_OpeningFcn, ... 'gui_OutputFcn',@mfbox_pre_selecttimestepsg_OutputFcn, ... 'gui_LayoutFcn',[], ... 'gui_Callback',[]);if (nargin&&(ischar(varargin{1}))) gui_State.gui_Callback = str2func(varargin{1});endif (nargout) [varargout{1:nargout}] = gui_mainfcn(gui_State,varargin{:});else gui_mainfcn(gui_State,varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before mfbox_pre_selecttimestepsg is made visible.function mfbox_pre_selecttimestepsg_OpeningFcn(hObject,eventdata,handles,varargin)% varargin{1} contains data X% varargin{2} contains data mask% varargin{3} contains data grid% varargin{4} contains timeline% varargin{5} (optional) contains the parameters% varargin{6} (optional) contains runflag (0: param edit only, 1: param+run, 2: run only)% varargin{7} (optional) contains private struct for mfbox_databackend('redraw_mask',mask,private)handles.output = hObject;handles.X = varargin{1};if (isstruct(handles.X)), s = [handles.X.dim,handles.X.timesteps];else, s = size(handles.X);endhandles.dim = s(1:(end-1));if (length(handles.dim)==1), handles.dim = [handles.dim,1]; endhandles.n = s(end);if (nargin>4), handles.mask = varargin{2}; else handles.mask = true(handles.dim);ends = size(handles.mask);handles.dim = ones(1,3);handles.dim(1:length(s)) = max(s(1:end),ones(1,length(s)));if (nargin>5), handles.grid = varargin{3};else handles.grid = mfbox_mkgrid(handles.dim)';endif (nargin>6), handles.timeline = varargin{4};else handles.timeline = 0:(handles.n-1);endif (nargin>7), handles.params = varargin{5};else handles.params = [];endif (nargin>8), handles.runflag = varargin{6};else handles.runflag = 2;endif (nargin>9), handles.private = varargin{7}; else handles.private = [];endhandles.maskimagedim = [1,min(100,handles.n),3];handles.maskimage = ones(handles.maskimagedim);handles.bmfile = '';handles.mask = false(1,handles.n);set(handles.mask_slider,'SliderStep',[1,1]);set(handles.mask_slider,'Min',1,'Max',max(1.1,1+handles.n-handles.maskimagedim(2)), ... 'Value',1);handles.mask(handles.params.selection) = true;handles = update_image(get(handles.mask_slider,'Value'),handles);set(handles.priority,'String',mat2str(handles.params.priority));if (handles.runflag<1) set(handles.run,'String','Set ...');endguidata(hObject,handles);uiwait(handles.figure1); % --- Outputs from this function are returned to the command line.function varargout=mfbox_pre_selecttimestepsg_OutputFcn(hObject,eventdata,handles) % varargout{1} contains the (edited) parameters% varargout{2} contains (changed) private handleif (isstruct(handles)) close(handles.figure1); varargout{1} = handles.params; if (nargout>1), varargout{2} = handles.private; endelse varargout{1} = [];end% ---function mask_handler(src,eventdata,h)p = get(h.display_mask,'CurrentPoint'); p = round(p(1,1:2));pos = round(get(h.mask_slider,'Value'));h.mask(p(1)) = ~(h.mask(p(1)));h = update_image(pos,h);guidata(h.mask_slider,h);% ---function handles=update_image(pos,handles)v = handles.maskimagedim(2);pos = round(pos);handles.maskimage = 1+handles.maskimage*0;l = pos:(pos-1+v);handles.maskimage(1,:,1) = 1-handles.mask(l);image(l,[1,1],handles.maskimage,'Parent',handles.display_mask, ... 'ButtonDownFcn',{@mask_handler,handles});% --- Executes on button press in run.function run_Callback(hObject,eventdata,handles)handles.params.priority = str2double(get(handles.priority,'String'));handles.params.selection = find(handles.mask);guidata(hObject,handles);uiresume(gcf);% ---function priority_Callback(hObject,eventdata,handles)set(hObject,'String',mat2str(min(max(floor(str2double(get(hObject,'String'))),1),100)));% --- Executes during object creation, after setting all properties.function priority_CreateFcn(hObject,eventdata,handles)if (ispc&&(isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor')))) set(hObject,'BackgroundColor','white');end% --- Executes on slider movement.function mask_slider_Callback(hObject, eventdata, handles)% Hints: get(hObject,'Value') returns position of slider% get(hObject,'Min') and get(hObject,'Max') to determine range of sliderhandles = update_image(get(hObject,'Value'),handles);guidata(hObject,handles);% --- Executes during object creation, after setting all properties.function mask_slider_CreateFcn(hObject, eventdata, handles)% Hint: slider controls usually have a light gray background.if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);end% --- Executes on button press in load_mask.function load_mask_Callback(hObject, eventdata, handles)[m,handles.bmfile] = mfbox_databackend('import_timemask', ... handles.bmfile);m = m(:);if (length(m)==handles.n) if (max(m)<=1 && min(m)>=0) m = m>0.5; end if (islogical(m)) handles.mask = m; endelse if (min(m>=1)) handles.mask = false(size(handles.mask)); handles.mask(ceil(m)) = true; endendhandles = update_image(get(handles.mask_slider,'Value'),handles);guidata(hObject,handles);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -