www.gusucode.com > mbcexpr 工具箱 matlab 源码程序 > mbcexpr/@cgsymvalue/setnomvalue.m

    function obj = setnomvalue(obj, val)
%SETNOMVALUE Set nominal value of object
%
%  OBJ = SETNOMVALUE(OBJ, VAL)

%  Copyright 2000-2004 The MathWorks, Inc. and Ford Global Technologies, Inc.


if any(isnull(obj.EquationPointers))
    % Just store nominal value in parent
    obj.cgvalue = setnomvalue(obj.cgvalue);
else
    % Evaluate inverse formula and push updated value to the linked
    % variable
    InputVals = cell(size(obj.EquationInputs));
    InputArgs = argnames(obj.InverseObject);
    myname = getname(obj);
    for n = 1:length(InputVals)
        if strcmp(InputArgs{n}, myname)
            InputVals{n} = val;
        else
            ptr = obj.EquationPointers(strcmp(InputArgs{n}, obj.EquationInputs));
            InputVals{n} = getnomvalue(ptr.info);
        end
    end
    VariableVal = pr_evalinline(obj.InverseObject, InputVals);
    VariablePtr = obj.EquationPointers(obj.EquationVariableIndex);
    VariablePtr.info  = setnomvalue(VariablePtr.info, VariableVal);
end