www.gusucode.com > signal 工具箱matlab源码程序 > signal/+fdesign/@abstractmultirate2/parsestruct.m

    function [filtstruct, varargin] = parsestruct(this, filtstruct, method, varargin)
%PARSESTRUCT   Parse the inputs for the FilterStructure parameter.

%   Copyright 2005-2006 The MathWorks, Inc.

if nargin > 3
    % Convert structure of options to cell array if necessary
    if isstruct(varargin{1}),
        opts = varargin{1};
        if isfield(opts,'FilterStructure'),
            filtstruct = opts.FilterStructure;
            opts = rmfield(opts,'FilterStructure');
            varargin{1} = opts;
        end
    else
        
        indx = find(strcmpi(varargin, 'filterstructure'));
        if ~isempty(indx)

            % If there are multiple filter structures passed in we just use the
            % last one.
            filtstruct = varargin{indx(end)+1};
            varargin([indx indx+1]) = [];
        end
    end
end

if ~any(strcmpi(filtstruct,validstructures(this,method))),
    error(message('signal:fdesign:abstractmultirate2:parsestruct:invalidStructure'));
end

% [EOF]