⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 openfig.c

📁 精通Matlab与C_C++混合程序设计.rar 是精通Matlab与C_C++混合程序设计 这本书的配套源码
💻 C
📖 第 1 页 / 共 3 页
字号:
     */
    #line 45 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(45);
    #line 45 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    if (nargin_ < 2) {
        /*
         * policy = 'new';
         */
        #line 46 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mclMline(46);
        #line 46 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mlfAssign(&policy, mxCreateString("new"));
    /*
     * end
     */
    #line 47 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(47);
    #line 47 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    }
    /*
     * 
     * if ~isequal(policy,'new') & ~isequal(policy,'reuse')
     */
    #line 49 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(49);
    #line 49 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    {
        #line 49 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mxArray * a_ = mclInitialize(mclNot(mlfIsequal(mclVa(policy, "policy"), mxCreateString("new"), NULL)));
        #line 49 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        if (mlfTobool(a_) && mlfTobool(mclAnd(a_, mclNot(mlfIsequal(mclVa(policy, "policy"), mxCreateString("reuse"), NULL))))) {
            #line 49 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mxDestroyArray(a_);
            /*
             * error('Second input argument must be ''new'' or ''reuse''.');
             */
            #line 50 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mclMline(50);
            #line 50 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mlfError(mxCreateString("Second input argument must be 'new' or 'reuse'."), NULL);
        #line 50 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        } else {
            #line 50 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mxDestroyArray(a_);
        #line 50 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        }
    /*
     * end
     */
    #line 51 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(51);
    #line 51 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    }
    /*
     * 
     * [path, name, ext] = fileparts(filename);
     */
    #line 53 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(53);
    #line 53 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mlfAssign(&path, mlfFileparts(&name, &ext, NULL, mclVa(filename, "filename")));
    /*
     * 
     * if isempty(ext)
     */
    #line 55 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(55);
    #line 55 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    if (mlfTobool(mlfIsempty(mclVv(ext, "ext")))) {
        /*
         * ext = '.fig';
         */
        #line 56 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mclMline(56);
        #line 56 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mlfAssign(&ext, mxCreateString(".fig"));
    /*
     * elseif ~isequal(lower(ext), '.fig')
     */
    #line 57 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(57);
    #line 57 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    } else if (mlfTobool(mclNot(mlfIsequal(mlfLower(mclVv(ext, "ext")), mxCreateString(".fig"), NULL)))) {
        /*
         * error('Argument must be a .fig file');
         */
        #line 58 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mclMline(58);
        #line 58 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mlfError(mxCreateString("Argument must be a .fig file"), NULL);
    /*
     * end
     */
    #line 59 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(59);
    #line 59 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    }
    /*
     * 
     * filename = fullfile(path, [name ext]);
     */
    #line 61 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(61);
    #line 61 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mlfAssign(&filename, mlfFullfile(mclVv(path, "path"), mlfHorzcat(mclVv(name, "name"), mclVv(ext, "ext"), NULL), NULL));
    /*
     * 
     * % We will use this token, based on the base name of the file
     * % (without path or extension) to track open instances of figure.
     * fname = filename;
     */
    #line 65 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(65);
    #line 65 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mlfAssign(&fname, mclVa(filename, "filename"));
    /*
     * flag = isletter(fname) | fname == '_' | ('0' <= fname & fname <= '9');
     */
    #line 66 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(66);
    #line 66 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mlfAssign(&flag, mclOr(mclOr(mlfIsletter(mclVv(fname, "fname")), mclEq(mclVv(fname, "fname"), mxCreateString("_"))), mclAnd(mclLe(mxCreateString("0"), mclVv(fname, "fname")), mclLe(mclVv(fname, "fname"), mxCreateString("9")))));
    /*
     * if (~all(flag))
     */
    #line 67 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(67);
    #line 67 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    if (mlfTobool(mclNot(mlfAll(mclVv(flag, "flag"), NULL)))) {
        /*
         * fname(find(~flag))=[];
         */
        #line 68 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mclMline(68);
        #line 68 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mlfIndexDelete(&fname, "(?)", mlfFind(NULL, NULL, mclNot(mclVv(flag, "flag"))));
    /*
     * end
     */
    #line 69 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(69);
    #line 69 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    }
    /*
     * fname = fliplr(fname);            % file name is more important
     */
    #line 70 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(70);
    #line 70 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mlfAssign(&fname, mlfFliplr(mclVv(fname, "fname")));
    /*
     * TOKEN = ['OpenFig_' fname '_SINGLETON']; % hide leading kruft
     */
    #line 71 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(71);
    #line 71 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mlfAssign(&TOKEN, mlfHorzcat(mxCreateString("OpenFig_"), mclVv(fname, "fname"), mxCreateString("_SINGLETON"), NULL));
    /*
     * TOKEN = TOKEN(1:min(end, 31));
     */
    #line 72 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(72);
    #line 72 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mlfAssign(&TOKEN, mlfIndexRef(mclVv(TOKEN, "TOKEN"), "(?)", mlfColon(mlfScalar(1), mlfMin(NULL, mlfEnd(mclVv(TOKEN, "TOKEN"), mlfScalar(1), mlfScalar(1)), mlfScalar(31), NULL), NULL)));
    /*
     * 
     * % get the existing list of figures, and prune out stale handles.
     * figs = getappdata(0, TOKEN);
     */
    #line 75 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(75);
    #line 75 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mlfAssign(&figs, mlfGetappdata(mlfScalar(0), mclVv(TOKEN, "TOKEN")));
    /*
     * figs = figs(ishandle(figs));
     */
    #line 76 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(76);
    #line 76 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mlfAssign(&figs, mlfIndexRef(mclVv(figs, "figs"), "(?)", mlfIshandle(mclVv(figs, "figs"))));
    /*
     * 
     * % are we reusing an existing figure?
     * reusing = false;
     */
    #line 79 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(79);
    #line 79 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mlfAssign(&reusing, mlfFalse(NULL));
    /*
     * 
     * switch policy
     */
    #line 81 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    mclMline(81);
    #line 81 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
    {
        #line 81 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mxArray * v_ = mclInitialize(mclVa(policy, "policy"));
        #line 81 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        if (mclSwitchCompare(v_, mxCreateString("new"))) {
            /*
             * case 'new'
             * % create another one, unconditionally
             * [fig, oldvis] = hgload(filename, struct('Visible','off'));
             */
            #line 84 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mclMline(84);
            #line 84 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mlfAssign(&fig, mlfNHgload(2, &oldvis, mclVa(filename, "filename"), mlfStruct(mxCreateString("Visible"), mxCreateString("off"), NULL), NULL));
            /*
             * figs(end + 1) = fig;
             */
            #line 85 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mclMline(85);
            #line 85 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mlfIndexAssign(&figs, "(?)", mclPlus(mlfEnd(mclVv(figs, "figs"), mlfScalar(1), mlfScalar(1)), mlfScalar(1)), mclVv(fig, "fig"));
        /*
         * case 'reuse'
         */
        #line 86 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        mclMline(86);
        #line 86 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
        } else if (mclSwitchCompare(v_, mxCreateString("reuse"))) {
            /*
             * % create one only if there are no others
             * if isempty(figs)
             */
            #line 88 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mclMline(88);
            #line 88 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            if (mlfTobool(mlfIsempty(mclVv(figs, "figs")))) {
                /*
                 * [figs, oldvis] = hgload(filename, struct('Visible','off'));
                 */
                #line 89 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
                mclMline(89);
                #line 89 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
                mlfAssign(&figs, mlfNHgload(2, &oldvis, mclVa(filename, "filename"), mlfStruct(mxCreateString("Visible"), mxCreateString("off"), NULL), NULL));
            /*
             * else
             */
            #line 90 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mclMline(90);
            #line 90 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            } else {
                /*
                 * oldvis = get(figs(end),{'Visible'});
                 */
                #line 91 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
                mclMline(91);
                #line 91 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
                mlfAssign(&oldvis, mlfNGet(1, mlfIndexRef(mclVv(figs, "figs"), "(?)", mlfEnd(mclVv(figs, "figs"), mlfScalar(1), mlfScalar(1))), mlfCellhcat(mxCreateString("Visible"), NULL), NULL));
                /*
                 * reusing = true;
                 */
                #line 92 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
                mclMline(92);
                #line 92 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
                mlfAssign(&reusing, mlfTrue(NULL));
            /*
             * end
             */
            #line 93 "d:\\matlab6p5\\toolbox\\matlab\\graphics\\openfig.m"
            mclMline(93);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -