www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/cgmatinterface.m
function [cal, ok] = cgmatinterface(options) %CGMATINTERFACE Get a calibration interface to a MATLAB MAT file. % % [CAL,OK] = CGMATINTERFACE(OPTIONS) returns a % calibrationdata.matinterface CAL and a status flag OK. Valid OPTIONS % are 'r' for 'read' and 'w' for 'write (create if necessary)'. % % CGMATINTERFACE is equivalent to CGMATINTERFACE('r'). % Copyright 2000-2016 The MathWorks, Inc. narginchk(0,1) if nargin == 0, options = 'r'; end switch lower(options) case 'r' [filename, pathname] = uigetfile({'*.mat','Extended MAT files (*.mat)'}, 'Open'); case 'w' [filename, pathname] = uiputfile({'*.mat','Extended MAT files (*.mat)'}, 'Save As'); otherwise error(message('mbc:cgmatinterface:InvalidArgument')); end if isequal(filename,0) || isequal(pathname,0) % User canceled cal = []; ok = false; else % Provide default extension .mat filename = fullfile(pathname, filename); [pathname, filename, extension] = fileparts(filename); if isempty(extension), extension = '.mat'; end filename = fullfile(pathname, [filename extension]); switch lower(options) case 'w' [ok, postfcn] = pSetupFileWrite(filename); action = 'saving'; case 'r' ok = true; postfcn = []; action = 'loading'; otherwise error('Invalid option') end if ok try % Create interface cal = calibrationdata.matinterface; % Load cal.ProgressManager = cgcalgui.progressmanager; cal.Filename = filename; ok = true; catch ME msg = sprintf('Error %s Extended MAT file:\n\n%s',action, ME.message); h = errordlg(msg, 'Error', 'modal'); waitfor(h); cal = []; ok = false; end if ~isempty(postfcn) postfcn(ok); end else cal = []; end end