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

    function PhysValuesOut = physresolve(obj, PhysValuesIn)
%PHYSRESOLVE  Resolve to achievable physical values.
%
%   PhysValuesOut = PHYSRESOLVE(OBJ, PhysValuesIn) converts potentially
%   inadmissible physical values PhysValuesIn to admissible physical values
%   PhysValuesOut using the achievable physical range specified by the
%   object.

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


% Error check on PhysValues
PhysValuesIn = i_check(PhysValuesIn, 'PhysValues');

% Set Output = Input
PhysValuesOut = PhysValuesIn;

% Get physical range from the cgpreclookupfix object
PhysRange = get(obj, 'PhysRange');

% The minimum achievable value is PhysRange(1)
PhysValuesOut(PhysValuesIn<PhysRange(1)) = PhysRange(1);
% The maximum achievable value is PhysRange(2)
PhysValuesOut(PhysValuesIn>PhysRange(2)) = PhysRange(2);



function out = i_check(in, VarName)

% Check input variables
switch VarName
    case 'PhysValues'
        if ~isnumeric(in)
            % PhysValues is nonnumeric
            error(message('mbc:cgpreclookupfix:InvalidArgument7'));
        elseif ~isreal(in)
            % PhysValues is not real
            error(message('mbc:cgpreclookupfix:InvalidArgument8'));
        else
            % PhysValues is valid
            out = in;
        end % if
end % switch