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

📄 colorbar.c

📁 ASUFIT-Matlab-全局拟合程序
💻 C
📖 第 1 页 / 共 4 页
字号:
    /*
     * cdatamapping = 'direct';
     */
    mlfAssign(&cdatamapping, mxCreateString("direct"));
    /*
     * 
     * for i=1:length(ch),
     */
    for (mclForStart(&iterator_0, mlfScalar(1.0), mlfLength(ch), NULL);
         mclForNext(&iterator_0, &i);
         ) {
        /*
         * typ = get(ch(i),'type');
         */
        mlfAssign(
          &typ,
          mlfGet(mlfIndexRef(ch, "(?)", i), mxCreateString("type"), NULL));
        /*
         * if strcmp(typ,'image'),
         */
        if (mlfTobool(mlfStrcmp(typ, mxCreateString("image")))) {
            /*
             * hasimage = 1;
             */
            mlfAssign(&hasimage, mlfScalar(1.0));
            /*
             * cdatamapping = get(ch(i), 'CDataMapping');
             */
            mlfAssign(
              &cdatamapping,
              mlfGet(
                mlfIndexRef(ch, "(?)", i),
                mxCreateString("CDataMapping"),
                NULL));
        /*
         * elseif strcmp(typ,'surface') & ...
         */
        } else {
            mxArray * a_ = mclInitialize(
                             mlfStrcmp(typ, mxCreateString("surface")));
            if (mlfTobool(a_)
                && mlfTobool(
                     mlfAnd(
                       a_,
                       mlfStrcmp(
                         mlfGet(
                           mlfIndexRef(ch, "(?)", i),
                           mxCreateString("FaceColor"),
                           NULL),
                         mxCreateString("texturemap"))))) {
                mxDestroyArray(a_);
                /*
                 * strcmp(get(ch(i),'FaceColor'),'texturemap') % Texturemapped surf
                 * hasimage = 2;
                 */
                mlfAssign(&hasimage, mlfScalar(2.0));
                /*
                 * cdatamapping = get(ch(i), 'CDataMapping');
                 */
                mlfAssign(
                  &cdatamapping,
                  mlfGet(
                    mlfIndexRef(ch, "(?)", i),
                    mxCreateString("CDataMapping"),
                    NULL));
            /*
             * elseif strcmp(typ,'patch') | strcmp(typ,'surface')
             */
            } else {
                mxDestroyArray(a_);
                {
                    mxArray * a_ = mclInitialize(
                                     mlfStrcmp(typ, mxCreateString("patch")));
                    if (mlfTobool(a_)
                        || mlfTobool(
                             mlfOr(
                               a_,
                               mlfStrcmp(typ, mxCreateString("surface"))))) {
                        mxDestroyArray(a_);
                        /*
                         * cdatamapping = get(ch(i), 'CDataMapping');
                         */
                        mlfAssign(
                          &cdatamapping,
                          mlfGet(
                            mlfIndexRef(ch, "(?)", i),
                            mxCreateString("CDataMapping"),
                            NULL));
                    } else {
                        mxDestroyArray(a_);
                    }
                }
            }
        /*
         * end
         */
        }
    /*
     * end
     */
    }
    /*
     * 
     * if ( strcmp(cdatamapping, 'scaled') )
     */
    if (mlfTobool(mlfStrcmp(cdatamapping, mxCreateString("scaled")))) {
        /*
         * % Treat images and surfaces alike if cdatamapping == 'scaled'
         * t = caxis;
         */
        mlfAssign(&t, mlfNCaxis(1, NULL, NULL));
        /*
         * d = (t(2) - t(1))/size(colormap,1);
         */
        mlfAssign(
          &d,
          mlfMrdivide(
            mlfMinus(
              mlfIndexRef(t, "(?)", mlfScalar(2.0)),
              mlfIndexRef(t, "(?)", mlfScalar(1.0))),
            mlfSize(mclValueVarargout(), mlfColormap(NULL), mlfScalar(1.0))));
        /*
         * t = [t(1)+d/2  t(2)-d/2];
         */
        mlfAssign(
          &t,
          mlfHorzcat(
            mlfPlus(
              mlfIndexRef(t, "(?)", mlfScalar(1.0)),
              mlfMrdivide(d, mlfScalar(2.0))),
            mlfMinus(
              mlfIndexRef(t, "(?)", mlfScalar(2.0)),
              mlfMrdivide(d, mlfScalar(2.0))),
            NULL));
    /*
     * else
     */
    } else {
        /*
         * if hasimage,
         */
        if (mlfTobool(hasimage)) {
            /*
             * t = [1, size(colormap,1)]; 
             */
            mlfAssign(
              &t,
              mlfHorzcat(
                mlfScalar(1.0),
                mlfSize(mclValueVarargout(), mlfColormap(NULL), mlfScalar(1.0)),
                NULL));
        /*
         * else
         */
        } else {
            /*
             * t = [1.5  size(colormap,1)+.5];
             */
            mlfAssign(
              &t,
              mlfHorzcat(
                mlfScalar(1.5),
                mlfPlus(
                  mlfSize(
                    mclValueVarargout(), mlfColormap(NULL), mlfScalar(1.0)),
                  mlfScalar(.5)),
                NULL));
        /*
         * end
         */
        }
    /*
     * end
     */
    }
    /*
     * 
     * h = gcda;
     */
    mlfAssign(&h, mlfColorbar_gcda());
    /*
     * 
     * if nargin==0,
     */
    if (mlfTobool(mlfEq(nargin_, mlfScalar(0.0)))) {
        /*
         * % Search for existing colorbar
         * ch = get(findobj(gcf,'type','image','tag','TMW_COLORBAR'),{'parent'}); ax = [];
         */
        mlfAssign(
          &ch,
          mlfGet(
            mlfFindobj(
              mlfGcf(),
              mxCreateString("type"),
              mxCreateString("image"),
              mxCreateString("tag"),
              mxCreateString("TMW_COLORBAR"),
              NULL),
            mlfCellhcat(mxCreateString("parent"), NULL),
            NULL));
        mlfAssign(&ax, mclCreateEmptyArray());
        /*
         * for i=1:length(ch),
         */
        for (mclForStart(&iterator_0, mlfScalar(1.0), mlfLength(ch), NULL);
             mclForNext(&iterator_0, &i);
             ) {
            /*
             * ud = get(ch{i},'userdata');
             */
            mlfAssign(
              &ud,
              mlfGet(
                mlfIndexRef(ch, "{?}", i), mxCreateString("userdata"), NULL));
            /*
             * d = ud.PlotHandle;
             */
            mlfAssign(&d, mlfIndexRef(ud, ".PlotHandle"));
            /*
             * if prod(size(d))==1 & isequal(d,h), 
             */
            {
                mxArray * a_ = mclInitialize(
                                 mlfEq(
                                   mlfProd(
                                     mlfSize(mclValueVarargout(), d, NULL),
                                     NULL),
                                   mlfScalar(1.0)));
                if (mlfTobool(a_)
                    && mlfTobool(mlfAnd(a_, mlfIsequal(d, h, NULL)))) {
                    mxDestroyArray(a_);
                    /*
                     * ax = ch{i}; 
                     */
                    mlfAssign(&ax, mlfIndexRef(ch, "{?}", i));
                    /*
                     * pos = get(ch{i},'Position');
                     */
                    mlfAssign(
                      &pos,
                      mlfGet(
                        mlfIndexRef(ch, "{?}", i),
                        mxCreateString("Position"),
                        NULL));
                    /*
                     * if pos(3)<pos(4), loc = 'vert'; else loc = 'horiz'; end
                     */
                    if (mlfTobool(
                          mlfLt(
                            mlfIndexRef(pos, "(?)", mlfScalar(3.0)),
                            mlfIndexRef(pos, "(?)", mlfScalar(4.0))))) {
                        mlfAssign(&loc, mxCreateString("vert"));
                    } else {
                        mlfAssign(&loc, mxCreateString("horiz"));
                    }
                    /*
                     * changeNextPlot = 0;
                     */
                    mlfAssign(&changeNextPlot, mlfScalar(0.0));
                    /*
                     * % Make sure image deletefcn doesn't trigger a colorbar('delete')
                     * % for colorbar update
                     * set(get(ax,'children'),'deletefcn','')
                     */
                    mclPrintAns(
                      &ans,
                      mlfNSet(
                        0,
                        mlfGet(ax, mxCreateString("children"), NULL),
                        mxCreateString("deletefcn"),
                        mxCreateString(""),
                        NULL));
                    /*
                     * break; 
                     */
                    mclDestroyForLoopIterator(&iterator_0);
                    break;
                } else {
                    mxDestroyArray(a_);
                }
            /*
             * end
             */
            }
        /*
         * end
         */
        }
    /*
     * end
     */
    }
    /*
     * 
     * origNextPlot = get(gcf,'NextPlot');
     */
    mlfAssign(
      &origNextPlot, mlfGet(mlfGcf(), mxCreateString("NextPlot"), NULL));
    /*
     * if strcmp(origNextPlot,'replacechildren') | strcmp(origNextPlot,'replace'),
     */
    {
        mxArray * a_ = mclInitialize(
                         mlfStrcmp(
                           origNextPlot, mxCreateString("replacechildren")));
        if (mlfTobool(a_)
            || mlfTobool(
                 mlfOr(
                   a_, mlfStrcmp(origNextPlot, mxCreateString("replace"))))) {
            mxDestroyArray(a_);
            /*
             * set(gcf,'NextPlot','add')
             */
            mclPrintAns(
              &ans,
              mlfNSet(
                0,
                mlfGcf(),
                mxCreateString("NextPlot"),
                mxCreateString("add"),
                NULL));
        } else {
            mxDestroyArray(a_);
        }
    /*
     * end
     */
    }
    /*
     * 
     * if loc(1)=='v', % Append vertical scale to right of current plot
     */
    if (mlfTobool(
          mlfEq(
            mlfIndexRef(loc, "(?)", mlfScalar(1.0)), mxCreateString("v")))) {
        /*
         * 
         * if isempty(ax),
         */
        if (mlfTobool(mlfIsempty(ax))) {
            /*
             * units = get(h,'units'); set(h,'units','normalized')
             */
            mlfAssign(&units, mlfGet(h, mxCreateString("units"), NULL));
            mclPrintAns(

⌨️ 快捷键说明

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