www.gusucode.com > mbcview 工具箱matlab源码程序 > mbcview/@cgsurfview/@inputlist/pCheckVariables.m

    function pCheckVariables(obj)
%PCHECKVARIABLES Check that the variable list is a valid subset of the inputs
%
%  PCHECKVARIABLES(OBJ) checks that the list of input axis variables is a
%  valid subset of the full inputs list.  If necessary, changes are made to
%  make the list valid.

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


numvars = length(obj.AxisNames);
set(obj.hInputListListeners, 'enabled', 'off');

% Check for invalid pointers
if ~isempty(obj.Variables)
    obj.Variables = obj.Variables(isvalid(obj.Variables));
end

% Check for variables being a member of the inputs
obj.Variables = obj.Variables(ismember(obj.Variables, obj.Inputs));

% Check that variables are independent
if ~isempty(obj.variables)
    obj.Variables = cgindependentvars(obj.Variables);
end

% Add or remove variables as needed
if length(obj.Variables)>numvars
    obj.Variables = obj.Variables(1:numvars);
elseif length(obj.Variables)<numvars
    i_ExtendVariables(obj);
end

set(obj.hInputListListeners, 'enabled', 'on');


% Function that adds only independent variables from Inputs into Variables
function i_ExtendVariables(obj)
numvars = length(obj.AxisNames);
len = length(obj.Variables);
k = 1;
while length(obj.Variables)<numvars && k<=length(obj.Inputs)
    if isempty(obj.Variables)
        obj.Variables = obj.inputs(k);
    elseif cgisindependentvars(obj.Inputs(k), obj.Variables)
		obj.Variables = [obj.Variables obj.Inputs(k)];
	end
	k = k+1;
end
if length(obj.Variables)<numvars
    % pad with null pointers
    pVars = null(xregpointer,1, numvars);
    pVars(1:length(obj.Variables)) = obj.Variables;
    obj.Variables = pVars;
end