www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgprojconnections/getOnlyDpts.m

    function OnlyDpts= getOnlyDpts(A,items,C)
%GETONLYDPTS items only used by a given item
%
% C= getOnlyDpts(A,items,C)

%  Copyright 2000-2008 The MathWorks, Inc.

if nargin<3
    C= false(size(A.Names));
end
C(items)= true;
C= iAllClosedDpts(A.Connections,C,items);
% remove original items
C(items)= false;
% only report major items
OnlyDpts= find(C & A.IsMajorItem);


function C= iAllClosedDpts(M,C,items)

f= M(items,:);
for i= find(f)
    if ~C(i) && all( ismember(find(M(:,i)),find(C)) )
        % only used by items in C
        C(i)= true;
        C= iAllClosedDpts(M,C,i);
    end
end