Matlab Clamping-Funktion mit separaten oberen & unteren Grenzen

Diese einfache Matlab-Funktion klammert einen Wert auf spezifizierte obere und untere Grenzen ein. Sie können einen Skalar oder ein Array von Werten zum Klammern angeben, zusammen mit einem Zweielement-Vektor, der die untere und obere Grenze spezifiziert.

clamp_function.m
function y = clamp(x, limits)
%CLAMP Clamp a value to lie within specified limits
%   y = CLAMP(x, limits) clamps the input x so that the result y
%   lies between limits(1) (lower bound) and limits(2) (upper bound).
%
%   Inputs:
%     x      - scalar or array of numeric values to clamp
%     limits - 2-element vector [lower upper] specifying clamp range
%
%   Output:
%     y      - clamped values, same size as x

    % Validate limits
    if numel(limits) ~= 2
        error('Limits must be a 2-element vector [lower upper].');
    end

    lower = limits(1);
    upper = limits(2);

    if lower > upper
        error('Lower limit must not exceed upper limit.');
    end

    % Perform clamping
    y = min(max(x, lower), upper);
end

Check out similar posts by category: Matlab/Simulink