Эквивалент Matlab Python “Ни один”

< и > соответственно

8
задан dzhelil 15 November 2009 в 13:35
поделиться

3 ответа

в вашем конкретном случае. вы можете использовать nargin , чтобы определить, сколько входных аргументов здесь предоставлено при вызове функции.

из документации MATLAB :

Функции nargin и nargout позволяют определить, сколько входных и выходные аргументы функция звонил с. Затем вы можете использовать условные операторы для выполнения разные задачи в зависимости от количество аргументов. Например,

function c = testarg1(a, b) 
     if (nargin == 1)
         c = a .^ 2; 
     elseif (nargin == 2)
         c = a + b; 
     end

Учитывая единственный входной аргумент, это функция возводит в квадрат входное значение. Учитывая два входа, он складывает их вместе.

11
ответ дан 5 December 2019 в 05:26
поделиться

NaN , хотя и не эквивалентен, часто служит той же цели.

13
ответ дан 5 December 2019 в 05:26
поделиться

nargin определенно самый простой способ сделать это. Также обычно рекомендуется проверять количество входных аргументов с помощью nargchk :

function e = testFunc(a,b,c,d)
    error( nargchk(2, 4, nargin, 'struct') );

    % set default values
    if nargin<4, d = 0; end
    if nargin<3, c = 0; end

    % ..
    c = a*b + c*d;

end

... который действует как способ гарантировать, что передано правильное количество аргументов. В этом случае требуется минимум два аргумента, максимум четыре .

Если nargchk не обнаруживает ошибки, выполнение продолжается в обычном режиме, в противном случае генерируется ошибка. Например, вызов testFunc (1) генерирует:

Not enough input arguments.

ОБНОВЛЕНИЕ: в R2011b narginchk была введена новая функция, которая заменяет использование устаревшего nargchk + ошибка , показанная выше:

 narginchk (2,4);

Вы можете использовать такие функции, как: exist и isempty , чтобы проверить, существует ли переменная и пуста ли она соответственно:

if ~exist('c','var') || isempty(c)
  c = 10;
end

, который позволяет вам вызывать вашу функцию, например: testFunc (1,2, [], 4) сообщает ему использовать значение по умолчанию для c , но все же дает значение для d

Вы также можете использовать varargin , чтобы принимать переменное количество аргументов.

Наконец, мощный способ синтаксического анализа и проверки именованных входов - использовать inputParser

Для просмотра примеров и других альтернатив передачи аргументов и установки значений по умолчанию , ознакомьтесь с этим сообщением и комментариями к нему.

7
ответ дан 5 December 2019 в 05:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: