Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
TSG QC
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
US191
TSG QC
Commits
553f5222
Commit
553f5222
authored
17 years ago
by
Yves Gouriou
Browse files
Options
Downloads
Patches
Plain Diff
Module de correction de smesures TSG - En developpement pas encore inclu dans le prgme principal
parent
cbb95337
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
dev_tsgcor_GUI.m
+655
-0
655 additions, 0 deletions
dev_tsgcor_GUI.m
with
655 additions
and
0 deletions
dev_tsgcor_GUI.m
0 → 100644
+
655
−
0
View file @
553f5222
function
dev_tsgcor_GUI
% dev_tsgcor_GUI
%
% GUI for correction of TSG data by comparison to samples
% this GUI is a children of tsgqc_GUI
%
%
%% COPYRIGHT & LICENSE
% Copyright 2007 - IRD US191, all rights reserved.
%
% This file is part of tsgqc_GUI.
%
% Datagui is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
%
% tsgqc_GUI is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with Datagui; if not, write to the Free Software
% Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
%% Initialization tasks
% ********************
clc
% Find program directory.
% functions (icons) should be store at a lower level
% add directories to Matlab search path, works on UNIX
% and Windows host
% ---------------------------------------------------
tsgqcname
=
mfilename
;
fulltsgqcname
=
mfilename
(
'fullpath'
);
DEFAULT_PATH_FILE
=
strrep
(
fulltsgqcname
,
tsgqcname
,
''
)
;
p
=
[
pathsep
,
...
DEFAULT_PATH_FILE
,[
filesep
'tsg_util'
pathsep
],
...
DEFAULT_PATH_FILE
,[
filesep
'tsg_data'
pathsep
]
];
addpath
(
p
,
'-END'
);
rehash
;
% Screen limits for the GUI
% -------------------------
set
(
0
,
'Units'
,
'normalized'
);
guiLimits
=
get
(
0
,
'ScreenSize'
);
guiLimits
(
1
)
=
guiLimits
(
1
)
+
0.05
;
guiLimits
(
2
)
=
guiLimits
(
2
)
+
0.1
;
guiLimits
(
3
)
=
guiLimits
(
3
)
-
0.15
;
guiLimits
(
4
)
=
guiLimits
(
4
)
-
0.25
;
% Create and then hide the GUI as it is being constructed.
% --------------------------------------------------------
hChild1Fig
=
figure
(
...
'Name'
,
'TSG Correction'
,
...
'NumberTitle'
,
'off'
,
...
'Resize'
,
'on'
,
...
'Menubar'
,
'none'
,
...
'Toolbar'
,
'none'
,
...
'Tag'
,
'ButtonMotionOff'
,
...
'WindowButtonMotionFcn'
,
@
MouseMotion
,
...
'CloseRequestFcn'
,
@
QuitProgram
,
...
'HandleVisibility'
,
'callback'
,
...
'Visible'
,
'on'
,
...
'Units'
,
'normalized'
,
...
'Position'
,
guiLimits
);
% Construct the Menu
% -----------------
hFileMenu
=
uimenu
(
...
'Parent'
,
hChild1Fig
,
...
'HandleVisibility'
,
'callback'
,
...
'Label'
,
'File'
);
hSaveMenu
=
uimenu
(
...
'Parent'
,
hFileMenu
,
...
'Label'
,
'Save'
,
...
'Accelerator'
,
'S'
,
...
'Tag'
,
'off'
,
...
'HandleVisibility'
,
'callback'
,
...
'Callback'
,
@
SaveMenuCallback
);
hQuitMenu
=
uimenu
(
...
'Parent'
,
hFileMenu
,
...
'Label'
,
'Quit'
,
...
'Separator'
,
'on'
,
...
'Accelerator'
,
'Q'
,
...
'HandleVisibility'
,
'callback'
,
...
'Callback'
,
@
QuitMenuCallback
);
% Construct the Toolbar
% -----------------
hToolbar
=
uitoolbar
(
...
% Toolbar for Open and Print buttons
'Parent'
,
hChild1Fig
,
...
'HandleVisibility'
,
'callback'
);
hSavePushtool
=
uipushtool
(
...
% Open Save toolbar button
'Parent'
,
hToolbar
,
...
'TooltipString'
,
'Save file'
,
...
'CData'
,
iconRead
(
...
[
DEFAULT_PATH_FILE
'tsg_icon'
filesep
'savedoc.mat'
]),
...
'HandleVisibility'
,
'callback'
,
...
'ClickedCallback'
,
@
SaveMenuCallback
);
hZoomPushtool
=
uipushtool
(
...
% Open Zoom toolbar button
'Parent'
,
hToolbar
,
...
'Separator'
,
'on'
,
...
'TooltipString'
,
'Zoom'
,
...
'CData'
,
iconRead
(
fullfile
(
matlabroot
,
...
'/toolbox/matlab/icons/zoom.mat'
)),
...
'HandleVisibility'
,
'callback'
,
...
'ClickedCallback'
,
@
ZoomMenuCallback
);
hPanPushtool
=
uipushtool
(
...
% Open Pan toolbar button
'Parent'
,
hToolbar
,
...
'TooltipString'
,
'Pan'
,
...
'CData'
,
iconRead
(
fullfile
(
matlabroot
,
...
'/toolbox/matlab/icons/pan.mat'
)),
...
'HandleVisibility'
,
'callback'
,
...
'ClickedCallback'
,
@
PanMenuCallback
);
hBottlePushtool
=
uipushtool
(
...
% Open toolbar button
'Parent'
,
hToolbar
,
...
'TooltipString'
,
'Plot the Samples'
,
...
'Separator'
,
'on'
,
...
'Tag'
,
'off'
,
...
'CData'
,
iconRead
(
...
[
DEFAULT_PATH_FILE
'tsg_icon'
filesep
'bottleicon.mat'
]),
...
'HandleVisibility'
,
'callback'
,
...
'ClickedCallback'
,
@
BottleMenuCallback
);
% Static text that displays the position, salinity and temperature
% ----------------------------------------------------------------
hInfoText
=
uicontrol
(
...
'Parent'
,
hChild1Fig
,
...
'Style'
,
'text'
,
...
'Fontsize'
,
12
,
...
'Fontweight'
,
'bold'
,
...
'Visible'
,
'on'
,
...
'Units'
,
'normalized'
,
...
'String'
,
'Information sur la position du curseur'
,
...
'Position'
,
[
.
05
,
.
95
,
.
9
,
.
03
]);
% Construct the plot axes
% -----------------------
hPlotAxes
(
1
)
=
axes
(
...
% the axes for plotting Salinity
'Parent'
,
hChild1Fig
,
...
'Units'
,
'normalized'
,
...
'Visible'
,
'on'
,
...
'HandleVisibility'
,
'callback'
,
...
'Position'
,[
.
25
,
.
6
,
.
7
,
.
32
]);
hPlotAxes
(
2
)
=
axes
(
...
% the axes for plotting temperature
'Parent'
,
hChild1Fig
,
...
'Units'
,
'normalized'
,
...
'Visible'
,
'on'
,
...
'HandleVisibility'
,
'callback'
,
...
'Position'
,[
.
25
,
.
3
,
.
7
,
.
25
]);
hPlotAxes
(
3
)
=
axes
(
...
% the axes for plotting ship velocity
'Parent'
,
hChild1Fig
,
...
'Units'
,
'normalized'
,
...
'Visible'
,
'on'
,
...
'HandleVisibility'
,
'callback'
,
...
'Position'
,[
.
25
,
.
05
,
.
7
,
.
2
]);
% Choose the date limits for the correction
% --------------------------------------------------
% Create the uipanel
hpDateLimit
=
uipanel
(
...
'Parent'
,
hChild1Fig
,
...
'Title'
,
'Date Limits'
,
...
'Units'
,
'normalized'
,
...
'FontSize'
,
11
,
...
'Fontweight'
,
'bold'
,
...
'BackgroundColor'
,
'white'
,
...
'Position'
,[
.
01
.
75
.
2
.
19
]);
htDateMin
=
uicontrol
(
...
'Parent'
,
hpDateLimit
,
...
'Style'
,
'Text'
,
...
'String'
,
'Minimum (mm/dd/yyyy)'
,
...
'HorizontalAlignment'
,
'left'
,
...
'Units'
,
'normalized'
,
...
'backgroundcolor'
,
'white'
,
...
'FontSize'
,
10
,
...
'Position'
,[
.
05
.
8
.
9
.
15
]);
hetDateMin
=
uicontrol
(
...
'Parent'
,
hpDateLimit
,
...
'Style'
,
'edit'
,
...
'Units'
,
'normalized'
,
...
'FontSize'
,
10
,
...
'Position'
,[
.
05
.
6
.
9
.
18
]);
htDateMax
=
uicontrol
(
...
'Parent'
,
hpDateLimit
,
...
'Style'
,
'Text'
,
...
'String'
,
'Maximum (mm/dd/yyyy)'
,
...
'HorizontalAlignment'
,
'left'
,
...
'Units'
,
'normalized'
,
...
'backgroundcolor'
,
'white'
,
...
'FontSize'
,
10
,
...
'Position'
,[
.
05
.
3
.
9
.
15
]);
hetDateMax
=
uicontrol
(
...
'Parent'
,
hpDateLimit
,
...
'Style'
,
'edit'
,
...
'Units'
,
'normalized'
,
...
'FontSize'
,
10
,
...
'Position'
,[
.
05
.
1
.
9
.
18
]);
% Choose the correction method
% --------------------------------------------------
% Create the button group
hbgMethod
=
uibuttongroup
(
...
'Parent'
,
hChild1Fig
,
...
'Title'
,
'Correction Method'
,
...
'Units'
,
'normalized'
,
...
'FontSize'
,
11
,
...
'Fontweight'
,
'bold'
,
...
'BackgroundColor'
,
'white'
,
...
'Position'
,[
.
01
.
6
.
2
.
14
]);
% Create 2 radio buttons in the button group
hrbLinear
=
uicontrol
(
...
'Style'
,
'Radio'
,
...
'Parent'
,
hbgMethod
,
...
'Units'
,
'normalized'
,
...
'String'
,
'Linear adjustment'
,
...
'pos'
,[
.
05
.
55
.
9
.
4
],
...
'HandleVisibility'
,
'off'
);
hrbMedian
=
uicontrol
(
...
'Style'
,
'Radio'
,
...
'Parent'
,
hbgMethod
,
...
'Units'
,
'normalized'
,
...
'String'
,
'Running median filter'
,
...
'pos'
,[
.
05
.
05
.
9
.
4
],
...
'HandleVisibility'
,
'off'
);
% Initialize some button group properties
set
(
hbgMethod
,
'SelectionChangeFcn'
,
@
selcbk
);
set
(
hbgMethod
,
'SelectedObject'
,[]);
% No selection
set
(
hbgMethod
,
'Visible'
,
'on'
);
% Construct the context menu to delete samples
% --------------------------------------------
hSampleCmenu
=
uicontextmenu
(
...
'Parent'
,
hChild1Fig
,
...
'HandleVisibility'
,
'callback'
);
hSampleCmenuDel
=
uimenu
(
...
'Parent'
,
hSampleCmenu
,
...
'HandleVisibility'
,
'off'
,
...
'Label'
,
'Delete'
,
...
'ForegroundColor'
,
'k'
,
...
'Callback'
,
@
QcDel
);
hSampleCmenuNoDel
=
uimenu
(
...
'Parent'
,
hSampleCmenu
,
...
'HandleVisibility'
,
'off'
,
...
'Label'
,
'Keep'
,
...
'ForegroundColor'
,
'b'
,
...
'Callback'
,
@
QcKeep
);
% Initialisation
% --------------
% tsg_initialisation(hMainFig, hQcCmenu)
% Lecture fichier TSG
% -------------------
filename
=
'F:\work\M_TsgQc\tsg_data\past0601.txt'
;
[
tsg
,
error
]
=
dev_readTsg
(
filename
);
% Lecture fichier bucket
% -----------------------
filename
=
'F:\work\M_TsgQc\tsg_data\past0601.btl'
;
[
bucketASCII
,
error
]
=
dev_readBucket
(
filename
);
% Salinity, in one 1 hour interval, should not depart the average for more
% than SAL_STD_MAX standard deviation
TSG_STDMAX
=
0.1
;
% 1 hour interval expressed in MATLAB serial Number
TSG_DT_SMOOTH
=
datenum
(
0
,
0
,
0
,
1
,
0
,
0
);
% dt between 2 tsg measurements
TSG_SAMPLING_TIME
=
tsg
.
TIME
(
2
)
-
tsg
.
TIME
(
1
);
% Period used to comput the correction
COR_TIME_WINDOWS
=
10
;
% Running average of TSG time series over TSG_DT_SMOOTH hour.
[
psal_smooth
,
nval
]
=
...
dev_moveaverage
(
tsg
.
TIME
,
tsg
.
PSAL
,
TSG_DT_SMOOTH
,
TSG_STDMAX
);
% Merge the 2 types of 'bucket' records, if they exists
bucketNETCDF
=
bucketASCII
;
bucketNETCDF
.
TIME
=
bucketNETCDF
.
TIME
+
1
;
bucketNETCDF
.
PSAL
=
bucketNETCDF
.
PSAL
+
1
;
bucketNETCDF
=
struct
([]);
sample
=
dev_mergesample
(
bucketNETCDF
,
bucketASCII
);
% Compute the sample-TSG differences
sample
=
dev_diffTsgSample
(
tsg
,
psal_smooth
,
sample
,
TSG_SAMPLING_TIME
);
% Trac
% -----
axes
(
hPlotAxes
(
1
));
% tsg = dev_corMethod1(tsg, sample, dateMin, dateMax, COR_TIME_WINDOWS);
% Callbacks for tsgcqc_GUI
% ************************
%----------------------------------------------------------------------
function
ZoomMenuCallback
(
hObject
,
eventdata
)
% Callback function run when the ...
% Returns a zoom mode object for the figure handle
% ------------------------------------------------
hZoom
=
zoom
(
hChild1Fig
);
% Specifies whether this mode is currently enabled on the figure
% --------------------------------------------------------------
zoomOnOff
=
get
(
hZoom
,
'Enable'
);
switch
zoomOnOff
case
'on'
zoom
off
zoomAdaptiveDateTicks
(
'off'
);
case
'off'
pan
off
set
(
hQCPushtool
,
'Tag'
,
'off'
);
zoom
on
zoomAdaptiveDateTicks
(
'on'
);
end
end
%----------------------------------------------------------------------
function
PanMenuCallback
(
hObject
,
eventdata
)
% Callback function run when the ....
% Returns a pan mode object for the figure handle
% -----------------------------------------------
hPan
=
pan
(
hChild1Fig
);
% Specifies whether this mode is currently enabled on the figure
% --------------------------------------------------------------
panOnOff
=
get
(
hPan
,
'Enable'
);
switch
panOnOff
case
'on'
pan
off
panAdaptiveDateTicks
(
'off'
);
case
'off'
zoom
off
set
(
hQCPushtool
,
'Tag'
,
'off'
);
pan
on
panAdaptiveDateTicks
(
'on'
);
end
end
%----------------------------------------------------------------------
function
QCMenuCallback
(
gcbo
,
eventdata
,
handles
)
% Callback function run when the QC pushbutton is selected
% Desactivate the Zoom and Pan functions.
% ---------------------------------------
% zoom off; pan off
% panAdaptiveDateTicks('off');zoomAdaptiveDateTicks('off');
% Retrieve named application data
% -------------------------------
% tsg = getappdata( hMainFig, 'tsg_data');
% Toggle the tag of the Qc pushbutton to 'on' or 'off'
% ----------------------------------------------------
% switch get(hQCPushtool, 'Tag');
% case 'off'
% set(hQCPushtool, 'Tag', 'on' );
% set(hPlotAxes(1),'UIContextMenu', hQcCmenu);
% set( hMainFig, 'Pointer', 'crosshair');
% case 'on'
% set(hQCPushtool, 'Tag', 'off' );
% set(hPlotAxes(1),'UIContextMenu', []);
% set(hMainFig,'Pointer','arrow');
% end
% qualityCode = -1;
% ind = [];
% while strcmp( get(hQCPushtool, 'Tag'),'on')
% k = waitforbuttonpress;
% If the QC pushbutton is pressed we quit the callback
% ----------------------------------------------------
% if strcmp( get(hQCPushtool, 'Tag'),'off')
% Desactivate the context menu use to choose the
% Quality Codes
% ----------------------------------------------
% set(hQcCmenu, 'Visible', 'off');
% break
% end
% Test if the right mouse button is clicked
% -----------------------------------------
% if strcmp(get(hMainFig, 'SelectionType'), 'alt') && ~isempty(ind)
% Wait for a QC Context Menu choice : The user choose the
% quality code
% -------------------------------------------------------
% uiwait
% qualityCode = 1;
% else
% Mouse motion callback desactivated when a selection is
% made. Otherwise there is a conflict with the map if it
% is activated
% -------------------------------------------------------
% set( hMainFig, 'Tag', 'ButtonMotionOff');
% Selection of the data within the figure
% ---------------------------------------
% point1 = get(gca,'CurrentPoint'); % button down detected
% finalRect = rbbox; % return figure units
% point2 = get(gca,'CurrentPoint'); % button up detected
% point1 = point1(1,1:2); % extract x and y
% point2 = point2(1,1:2);
% p1 = min(point1,point2);
% p2 = max(point1,point2); % calculate locations
% ind = find(tsg.TIME > p1(1,1) & tsg.TIME < p2(1,1) & ...
% tsg.PSAL > p1(1,2) & tsg.PSAL < p2(1,2));
% As soon as a modification took place the data should be
% saved
% -------------------------------------------------------
% set( hSaveMenu, 'Tag', 'on' );
% Selection made : Mouse motion callback re-activated
% --------------------------------------------------
% set( hMainFig, 'Tag', 'ButtonMotionOn');
% end
% Plot the data with the color of the chosen quality Code.
% Is it the right place for this source code ????
% --------------------------------------------------------
% if qualityCode ~= -1
% quality = get( hQcCmenu, 'UserData');
% tsg.PSAL_QC(ind) = quality.Code;
% Save the modifications
% ----------------------
% setappdata( hMainFig, 'tsg_data', tsg);
% axes(hPlotAxes(1));
% hold on
% color = ['.' quality.Color];
% plot(tsg.TIME(ind), tsg.PSAL(ind), color );
% hold off
% end
% end
end
%---------------------------------------------------------------------
function
QcDel
(
hObject
,
eventdata
)
% Callback function run when the QC context menu is selected
% Retrieve Default Quality Code and Color
% ---------------------------------------
%qc = getappdata( hMainFig, 'qcColor');
%quality.Code = qc.Code.NO_CONTROL;
%quality.Color = qc.Color.NO_CONTROL;
%set( hQcCmenu, 'UserData', quality );
% uiwait in the QCMenuCallback function
% -------------------------------------
%uiresume
end
%---------------------------------------------------------------------
function
QcKeep
(
hObject
,
eventdata
)
% Callback function run when the QC context menu is selected
% Retrieve named application data
% -------------------------------
%qc = getappdata( hMainFig, 'qcColor');
%quality.Code = qc.Code.GOOD;
%quality.Color = qc.Color.GOOD;
%set( hQcCmenu, 'UserData', quality );
% uiwait in the QCMenuCallback function
% -------------------------------------
%uiresume
end
%---------------------------------------------------------------------
function
MouseMotion
(
hObject
,
eventdata
)
% Test if the callback can be activated
% -------------------------------------
% if strcmp( get( hChild1Fig, 'Tag'), 'ButtonMotionOn')
% Retrieve named application data
% -------------------------------
% tsg = getappdata( hChild1Fig, 'tsg_data');
% Get the mouse position
% ----------------------
% point = get(gcf,'CurrentPoint');
% if point(1) > .05 && point(2) > .6 && point(1) < .95 && point(2) < .92
% Get current position of cusor and return its coordinates in
% axes with handle h_axes
% -----------------------------------------------------------
% [x, y] = gpos(hPlotAxes(1));
% if x > tsg.TIME(1) && x < tsg.TIME(end)
% indCursor = find( tsg.TIME > x);
% use sprintf with format instead strcat & num2str but flag
% - don't work with 0, eg %+07.4f
% set( hInfoText, 'String',...
% sprintf(['%s - Latitude = %s - Longitude = %s '...
% ' - Salinity = %07.4f - Temperature = %07.4f'],...
% datestr(tsg.TIME(indCursor(1)),'dd/mm/yyyy HH:MM'),...
% dd2dm(tsg.LATITUDE(indCursor(1)),0), ...
% dd2dm(tsg.LONGITUDE(indCursor(1)),1), ...
% tsg.PSAL(indCursor(1)), ...
% tsg.TEMP_TSG(indCursor(1))...
% ));
% end
% end
% end
end
%---------------------------------------------------------------------
function
BottleMenuCallback
(
hObject
,
eventdata
)
% Callback function run when the Bottle tool bar item is selected
%
% Plot or Delete the buckets measurements on the Salinity graph
%
% Need to read them right now - but they will be soon in the NetCdf
% file
% Test if the sample Push button has been pressed
% -----------------------------------------------
% if strcmp( get(hBottlePushtool, 'Tag'), 'off')
% Sample Push button - Tag set to 'on'
% ------------------------------------
% set( hBottlePushtool, 'Tag', 'on' );
% Retrieve named application data
% -------------------------------
% sample = getappdata( hMainFig, 'sample');
% hLine = get( hPlotAxes(1), 'UserData');
% Plot the samples if the TSG file has been read
% ----------------------------------------------
% if strcmp( get(hOpenMenu, 'Tag'), 'on' ) && ~isempty( sample )
% axes( hPlotAxes(1) );
% hLine.Sample = line( ...
% sample.TIME, sample.PSAL,...
% 'Linestyle', 'none', 'Marker','o','MarkerSize',5, ...
% 'Color','r', 'MarkerFaceColor','r');
% Store the handle of the bucketline
% ----------------------------------
% set( hPlotAxes(1), 'UserData', hLine );
% end
% else
% set( hBottlePushtool, 'Tag', 'off' );
% The bucket pushbutton has been pressed again :
% Delete the bucket on figure
% ----------------------------------------------
% hLine = get( hPlotAxes(1), 'UserData');
% if ~isempty( hLine ) && ishandle( hLine.Sample )
% delete(hLine.Sample);
% end
% end
end
% -----------------------------------------------------------------
function
SaveMenuCallback
(
hObject
,
eventdata
)
% Callback function run when the Save menu item is selected
% [fileName, pathName, filterIndex] = uiputfile('*.txt', ...
% 'Save file name');
% fileName = [pathName fileName];
% error = tsg_writeTsgData( hMainFig, fileName );
% if ~error
%
% end
end
% -----------------------------------------------------------------
function
QuitMenuCallback
(
hObject
,
eventdata
)
% Callback function run when the Quit menu item is selected
% If the data have been modified and not save, the program
% propose to save the data
% --------------------------------------------------------
if
strcmp
(
get
(
hSaveMenu
,
'Tag'
),
'on'
)
selection
=
...
questdlg
(
'The file has been modified. Do you want to save it ?'
,
...
'Save before Quit?'
,
...
'Yes'
,
'No'
,
'Yes'
);
if
strcmp
(
selection
,
'Yes'
)
return
;
else
QuitProgram
;
end
else
selection
=
...
questdlg
([
'Quit '
get
(
hChild1Fig
,
'Name'
)
'?'
],
...
[
'Quit '
get
(
hChild1Fig
,
'Name'
)
'?'
],
...
'Yes'
,
'No'
,
'Yes'
);
if
strcmp
(
selection
,
'No'
)
return
;
else
QuitProgram
;
end
end
end
% ----------------------------------------------------------------
function
QuitProgram
(
hObject
,
eventdata
)
delete
(
hChild1Fig
);
% reset Matlab search path to default
rmpath
(
[
DEFAULT_PATH_FILE
filesep
'tsg_util'
]
);
rmpath
(
[
DEFAULT_PATH_FILE
filesep
'tsg_data'
]
);
rehash
;
end
end
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment