www.gusucode.com > mbcview 工具箱matlab源码程序 > mbcview/@cgddnode/duplicatenode.m

    function [Tnew,pNewItem] = duplicatenode(T, pSI)
%DUPLICATENODE Duplicate a Cage variable dictionary node
%
%  NEWND = DUPLICATENODE(ND, P_SUBITEM) creates a new copy of node ND.
%  NEWND is the resulting new node that is created

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


if pSI~=0
    % Duplicate the subitem.  New formulae link to the same
    % variables/constants.  
    NewItem = pSI.info;
    DD = address(T);
    
    % Find a new unique name
    newnm = uniquename(DD.project, getname(NewItem));  
    NewItem = setname(NewItem, newnm);
    
    % Remove the aliases
    NewItem = clearallalias(NewItem);
    
    % new pointer for expression
    pNewItem = address(clone(NewItem));
    
    Tnew = add(T,pNewItem);
else
    Tnew = T;
    pNewItem = xregpointer;
end