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