arguments

Объявите валидацию аргумента функции

Описание

пример

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

arguments (Repeating) ... end разграничивает блок повторяющихся аргументов.

Примеры

свернуть все

Используйте arguments блокируйтесь, чтобы ограничить размер и класс входного параметра.

Запишите функцию, которая ограничивает размер и класс входного параметра к матрице числовых значений. Для получения дополнительной информации об использовании arguments блоки, смотрите аргументы Block Syntax.

function [m,s] = Stat(x)
    arguments
        x (:,:) {mustBeNumeric}
    end
    m = mean(x,'all');
    s = std(x,1,'all');
end

Вызовите функцию на входе неправильного размера. Ошибка заканчивается.

[m,s] = Stat(rand(10,10,10))
Invalid input argument at position 1. Value must be a matrix.

Задайте повторяющиеся аргументы.

Повторяющиеся аргументы являются одним или группы аргументов, которые могут быть повторены нуль или больше раз в вызове функции. fRepeat функция принимает повторяющиеся группы аргументов xY, и styleX и y должны быть векторы, удваивается, или конвертируемый к удваивается. style должна быть символьная строка '--' или ':' .

Для получения дополнительной информации о повторяющихся аргументах смотрите Повторяющиеся Аргументы.

function fRepeat(x,y,style)
    arguments (Repeating)
        x (1,:) double
        y (1,:) double
        style {mustBeMember(style,{'--',':'})}       
    end
    
    % Interleave inputs and call plot function
    z = reshape([x;y;style],1,[]);
    if ~isempty(z)
        plot(z{:});
    end
end

Вызовите fRepeat с двумя группами входных параметров.

x1 = 1:10; x2 = 1:5;
y1 = 1:10; y2 = 1:5;
s1 = ':'; s2 = '--';
fRepeat(x1,y1,s1,x2,y2,s2)

Советы

  • Только конкретные методы, включая конкретные методы в абстрактных классах, могут задать arguments блоки.

Смотрите также

Введенный в R2019b