Функция clamping в Matlab с раздельными верхним и нижним пределами

Эта простая функция Matlab ограничивает значение заданными верхним и нижним пределами. Вы можете предоставить скаляр или массив значений для ограничения вместе с двухэлементным вектором, задающим нижнюю и верхнюю границы.

clamp_function.m
function y = clamp(x, limits)
%CLAMP Ограничить значение заданными пределами
%   y = CLAMP(x, limits) ограничивает вход x так, что результат y
%   находится между limits(1) (нижняя граница) и limits(2) (верхняя граница).
%
%   Входы:
%     x      - скаляр или массив числовых значений для ограничения
%     limits - 2-элементный вектор [нижний верхний], задающий диапазон ограничения
%
%   Выход:
%     y      - ограниченные значения, того же размера, что и x

    % Проверка пределов
    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

    % Выполнение ограничения
    y = min(max(x, lower), upper);
end

Check out similar posts by category: Matlab/Simulink