www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgtabgradconstraint/private/pGetAxisRangeScale.m

    function axisRngScale = pGetAxisRangeScale(obj)
%PGETAXISRANGESCALE Get the axis range scaling
%
%   AXISRNGSCALE = PGETAXISRANGESCALE(OBJ) returns a scaling vector for the
%   gradient bounds such that OBJ can be evaluated with OBJ.AXISBREAKPOINTS
%   scaled onto [0, 1]

%   Copyright 2006 The MathWorks, Inc.

persistent fRange
if isempty(fRange)
    % store function handlesin persistent data to avoid unnecessary 
    % construction of these handles
    fRange= @(x)x(end) - x(1);
end

NAXES = length(obj.AxisBreakpoints);
dimGrid = cellfun('length', obj.AxisBreakpoints);

if NAXES == 2
    axisRng = cellfun(fRange, obj.AxisBreakpoints);
    numRowCon = (dimGrid(1) - 1)*dimGrid(2);
    numColCon = dimGrid(1)*(dimGrid(2) - 1);
    axisRngScale = zeros(2*numRowCon + 2*numColCon, 1);
    axisRngScale(1:2*numRowCon) = axisRng(1);
    axisRngScale(2*numRowCon+1:end) = axisRng(2);
else
    axisRng = obj.AxisBreakpoints{1}(end) - obj.AxisBreakpoints{1}(1);
    numRowCon = dimGrid(1) - 1;
    axisRngScale = zeros(2*numRowCon, 1);
    axisRngScale(:) = axisRng;
end