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