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